Summary: | MT_Timeout test crashes | ||
---|---|---|---|
Product: | TAO | Reporter: | Nanbor Wang <bala> |
Component: | ORB | Assignee: | Nanbor Wang <bala> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | duane.binder, steve.vranyes, tao-support |
Priority: | P3 | ||
Version: | 1.2.5 | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | |||
Bug Blocks: | 1277 |
Description
Nanbor Wang
2002-08-09 23:46:32 CDT
Accepted Crashes are blockers for the 1.3 release. Appears with the latest version too. Hence updated the version info! Okay, here is the scoop. Looks to me that the Roundtrip Timeout implementation is fragile and hence the problems. Imagine this scenario 1. 2 threads (T1 and T2) send messages (they also have a RT timeout at the ORB level say) and wait for the reply. 2. Say T1 gets to be the leader and drives the reactor event loop while T2 is a follower. 3. T1 gets a reply which actually happens to be T2's reply 4. But at this point T2 timesout and starts unwinding its stack 5. T1 after collecting the reply tries to get the dispatcher from the table. And if it gets tries dispatch_reply () on it. 6. Since the reply dispatcher was created on stack, when T2 unwinds the stack is blown off and T1 is left with pointers that are useless. 7. Things are a lot more screwy with Exclusive connection strategy. Looks like that portion of the ORB is very very fragile! Fixed! The relevant changelog entries are Sun Dec 22 11:26:30 2002 Balachandran Natarajan <bala@isis-server.isis.vanderb ilt.edu> Mon Dec 23 22:33:56 2002 Balachandran Natarajan <bala@isis-server.isis.vanderb ilt.edu> |