Forums | Admin

Discussion Forums: help

Start New Thread Start New Thread
Message: 96983
BY: Aaron Qian (aq1018)
DATE: 2011-09-15 21:18
SUBJECT: Timouts and "executing in another thread"

 

Hi kubo-san,

cursor.fetch inside a timeout will corrupt client state and causing all subsequent #exec calls to raise "executing in another thread".

Cause:

* Timeout causes oci8_unblock_func() to run.
* "svcctx->executing_thread = Qnil" in oci8_blocking_region() is never reached if oci8_unblock_func() is run.
* "svcctx->executing_thread" is set but not cleared in oci8_unblock_func()


How to reproduce:

see https://gist.github.com/1220485

Possible fix:

Add "svcctx->executing_thread = Qnil;" to oci8_unblock_func().

This caused the errors to disappear, however, I'm not sure if this is the correct way to address this issue.


Thread View

Thread Author Date
Timouts and "executing in another thread"Aaron Qian2011-09-15 21:18
      RE: Timouts and "executing in another thread"Kubo Takehiro2011-09-19 00:02
            RE: Timouts and "executing in another thread"Aaron Qian2011-09-19 17:24

Post a followup to this message