You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Pavlin Radoslavov (JIRA)" <ji...@apache.org> on 2011/02/17 12:13:24 UTC

[jira] Created: (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
----------------------------------------------------------------------------------------------------

                 Key: THRIFT-1064
                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Compiler
    Affects Versions: 0.7
         Environment: FreeBSD-8.0 on x86
            Reporter: Pavlin Radoslavov
             Fix For: 0.7


If the server event handler for TNonblockingServer is set,
method TClientInfoServerHandler::processContext() should be called
right before invoking the processor for the RPC.
However, in certain cases (e.g., isThreadPoolProcessing() for the
server is false), the processContext() method is not called.
The attached patch illustrates the omission.


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Pavlin Radoslavov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavlin Radoslavov updated THRIFT-1064:
--------------------------------------

    Attachment: thrift_process_context.patch

Even after almost 1.5 years, the fix for the patch is still not committed to SVN. I am providing an updated patch for the latest SVN code in trunk as of r1362373 (last changed revision r1361615). The new fix is basically same as the original fix, just in different place of the file.

                
> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>            Assignee: Pavlin Radoslavov
>         Attachments: thrift_1064.patch, thrift_process_context.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.
> For cross-reference, see the existing call to processContext()
> inside the following code from method TConnection::Task::run()
> in file TNonblockingServer.cpp :
> class TConnection::Task: public Runnable {
> ...
>   void run() {
>     try {
>       for (;;) {
>         if (serverEventHandler_ != NULL) {
>           serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
>         }
>         if (!processor_->process(input_, output_, connectionContext_) ||
>             !input_->getTransport()->peek()) {
>           break;
>         }
>       }
>     } catch (TTransportException& ttx) {
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13416901#comment-13416901 ] 

Hudson commented on THRIFT-1064:
--------------------------------

Integrated in Thrift #510 (See [https://builds.apache.org/job/Thrift/510/])
    THRIFT-1064 TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler 
Patch: Pavlin Radoslavov (Revision 1362773)

     Result = FAILURE
roger : http://svn.apache.org/viewvc/?view=rev&rev=1362773
Files : 
* /thrift/trunk/lib/cpp/src/thrift/server/TNonblockingServer.cpp

                
> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>            Assignee: Pavlin Radoslavov
>         Attachments: thrift_1064.patch, thrift_process_context.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.
> For cross-reference, see the existing call to processContext()
> inside the following code from method TConnection::Task::run()
> in file TNonblockingServer.cpp :
> class TConnection::Task: public Runnable {
> ...
>   void run() {
>     try {
>       for (;;) {
>         if (serverEventHandler_ != NULL) {
>           serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
>         }
>         if (!processor_->process(input_, output_, connectionContext_) ||
>             !input_->getTransport()->peek()) {
>           break;
>         }
>       }
>     } catch (TTransportException& ttx) {
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Pavlin Radoslavov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavlin Radoslavov reassigned THRIFT-1064:
-----------------------------------------

    Assignee: Pavlin Radoslavov
    
> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>            Assignee: Pavlin Radoslavov
>         Attachments: thrift_1064.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.
> For cross-reference, see the existing call to processContext()
> inside the following code from method TConnection::Task::run()
> in file TNonblockingServer.cpp :
> class TConnection::Task: public Runnable {
> ...
>   void run() {
>     try {
>       for (;;) {
>         if (serverEventHandler_ != NULL) {
>           serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
>         }
>         if (!processor_->process(input_, output_, connectionContext_) ||
>             !input_->getTransport()->peek()) {
>           break;
>         }
>       }
>     } catch (TTransportException& ttx) {
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Roger Meier (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roger Meier resolved THRIFT-1064.
---------------------------------

    Resolution: Fixed

committed
                
> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>            Assignee: Pavlin Radoslavov
>         Attachments: thrift_1064.patch, thrift_process_context.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.
> For cross-reference, see the existing call to processContext()
> inside the following code from method TConnection::Task::run()
> in file TNonblockingServer.cpp :
> class TConnection::Task: public Runnable {
> ...
>   void run() {
>     try {
>       for (;;) {
>         if (serverEventHandler_ != NULL) {
>           serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
>         }
>         if (!processor_->process(input_, output_, connectionContext_) ||
>             !input_->getTransport()->peek()) {
>           break;
>         }
>       }
>     } catch (TTransportException& ttx) {
> ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Pavlin Radoslavov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavlin Radoslavov updated THRIFT-1064:
--------------------------------------

    Attachment: thrift_1064.patch

> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler
>    Affects Versions: 0.7
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>             Fix For: 0.7
>
>         Attachments: thrift_1064.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (THRIFT-1064) TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler

Posted by "Pavlin Radoslavov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavlin Radoslavov updated THRIFT-1064:
--------------------------------------

          Component/s:     (was: C++ - Compiler)
                       C++ - Library
        Fix Version/s:     (was: 0.7)
          Description: 
If the server event handler for TNonblockingServer is set,
method TClientInfoServerHandler::processContext() should be called
right before invoking the processor for the RPC.
However, in certain cases (e.g., isThreadPoolProcessing() for the
server is false), the processContext() method is not called.
The attached patch illustrates the omission.

For cross-reference, see the existing call to processContext()
inside the following code from method TConnection::Task::run()
in file TNonblockingServer.cpp :

class TConnection::Task: public Runnable {
...
  void run() {
    try {
      for (;;) {
        if (serverEventHandler_ != NULL) {
          serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
        }
        if (!processor_->process(input_, output_, connectionContext_) ||
            !input_->getTransport()->peek()) {
          break;
        }
      }
    } catch (TTransportException& ttx) {
...


  was:
If the server event handler for TNonblockingServer is set,
method TClientInfoServerHandler::processContext() should be called
right before invoking the processor for the RPC.
However, in certain cases (e.g., isThreadPoolProcessing() for the
server is false), the processContext() method is not called.
The attached patch illustrates the omission.


    Affects Version/s:     (was: 0.7)

> TClientInfoServerHandler::processContext() is not called for TNonblockingServer server event handler
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1064
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1064
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: FreeBSD-8.0 on x86
>            Reporter: Pavlin Radoslavov
>         Attachments: thrift_1064.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> If the server event handler for TNonblockingServer is set,
> method TClientInfoServerHandler::processContext() should be called
> right before invoking the processor for the RPC.
> However, in certain cases (e.g., isThreadPoolProcessing() for the
> server is false), the processContext() method is not called.
> The attached patch illustrates the omission.
> For cross-reference, see the existing call to processContext()
> inside the following code from method TConnection::Task::run()
> in file TNonblockingServer.cpp :
> class TConnection::Task: public Runnable {
> ...
>   void run() {
>     try {
>       for (;;) {
>         if (serverEventHandler_ != NULL) {
>           serverEventHandler_->processContext(connectionContext_, connection_->getTSocket());
>         }
>         if (!processor_->process(input_, output_, connectionContext_) ||
>             !input_->getTransport()->peek()) {
>           break;
>         }
>       }
>     } catch (TTransportException& ttx) {
> ...

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira