Bug 3054 - Notify_Service Ctrl-C hangs
Summary: Notify_Service Ctrl-C hangs
Status: NEW
Alias: None
Product: TAO
Classification: Unclassified
Component: Notification Service (show other bugs)
Version: 1.5.10
Hardware: All Linux
: P3 normal
Assignee: Steve Totten
URL:
Depends on:
Blocks:
 
Reported: 2007-08-20 10:54 CDT by hans.utz
Modified: 2007-08-22 13:37 CDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description hans.utz 2007-08-20 10:54:30 CDT
When running Notify_Service with asynchronous dispatching (as enabled in the svc.conf file in TAO/orbsvcs/Notify_Service) Ctrl-C will hang, if there is still a consumer registered at the service.

The root problem is, that the Notify_Service_Driver::run() blocks on worker_thr_mgr()->wait(). Notify_Service_Driver::shutdown() calls orb_->shutdown(), but does not cancel the dispatching threads, which seem to be managed under the same thread manager.

Consumers can not disconnect after Ctrl-C anymore either, as the orb event loop is already down.

Workaround: Initializing -ORBRunThreads 0 causes ::run() to end up in orb_->run() instead of ...->wait(). This at least works for the "single 
threaded orb" configuration. This can also be achieved by initializing nthreads_  with 0 instead of 1 in the ctor of the _Driver class.
Comment 1 Johnny Willemsen 2007-08-22 13:37:44 CDT
Steve, can OCI have a look at this as maintainers of the notification service?