Re: std::terminate in omniORBpy
Michael Teske via omniORB-list <[email protected]> Fri, 27 May 2022 17:28:47 +0200
| Newsgroups | gmane.comp.corba.omniorb.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Duncan, Am 27/05/2022 um 16:18 schrieb Duncan Grisby: > On Fri, 2022-05-27 at 16:15 +0200, Michael Teske via omniORB-list > wrote: > >>> Do you call orb.destroy() before exit? >> >> Yes, in my first post I appended the ORBtraceLevel=40 log. There are >> all log messages from >> >> omniORB: (0) 2022-05-12 13:44:39.661452: Destroy ORB... >> to >> omniORB: (0) 2022-05-12 13:44:39.662654: ORB destroyed. >> omniORB: (0) 2022-05-12 13:44:39.662792: No more references to the >> ORB -- deleted. >> >> Unfortunately one thread seems to survive this. > > Just as an experiment (not a proper solution), what happens if you add > a sleep of a second (or several seconds) after orb.destroy() returns, > before your code exits? It looks a bit different: omniORB: (0) 2022-05-27 17:18:53.422062: ORB destroyed. omniORB: (4) 2022-05-27 17:18:53.422150: Deleting Python state for thread id 140582319470336 (thread exit) omniORB: (0) 2022-05-27 17:18:54.422895: No more references to the ORB -- deleted. omniORB: (0) 2022-05-27 17:18:54.514627: ObjRef(IDL:fundamental/Server:1.0) -- deleted. omniORB: (0) 2022-05-27 17:18:54.514689: ObjRef(IDL:userManagerInterface/umServer:1.0) -- deleted. omniORB: (0) 2022-05-27 17:18:54.514703: ObjRef(IDL:userManagerInterface/umServer:1.0) -- deleted. omniORB: (0) 2022-05-27 17:18:54.514712: ObjRef(IDL:QuotingServer/Server:1.0) -- deleted. omniORB: (0) 2022-05-27 17:18:54.601195: Final clean-up omniORB: (0) 2022-05-27 17:18:54.601251: Deleted 4 nil object references and 0 other tracked objects. omniORB: (0) 2022-05-27 17:18:54.601263: Final clean-up completed. and no crash. Without the time.sleep(1), there had been no "Final clean-up" in the log. Actually it looks like even a time.sleep(0.01) would suffice for this to work and the crash to vanish. I could certainly live with that. Regards, Michael