Message110655
I saw value of local variable *thread* was 5384 and internal buffer's
address was 0x102618c8 (sorry, this is another stacktrace which differs
from previous one)
thread(5384) func(file_close): enter....
thread(5384) func(close_the_file): enter....
thread(5384) func(close_the_file): file(00A1FB18) address(00B18FD0): local_close enter...
thread(5376) func(file_close): enter....
thread(5376) func(close_the_file): enter....
thread(5376) func(close_the_file): leave....
thread(5376) func(file_close): file(00A1FB18) address(00B18FD0): PyMem_Free
thread(5376) func(file_close): leave....
Thread 5384 entered close_the_file() and ran local_close() and allowed
another thread to run. Before this, fp->f_fp was set to NULL. Thread 5376
entered close_the_file() and see fp->f_fp is NULL, and returned immediately
and freed fp->f_setbuf. Interesting point is, thread 5384 was still running
close(2), so flush(2) called by this function touched this buffer and crashed. |
|
Date |
User |
Action |
Args |
2010-07-18 15:16:53 | ocean-city | set | recipients:
+ ocean-city |
2010-07-18 15:16:53 | ocean-city | set | messageid: <1279466213.48.0.363175868363.issue9295@psf.upfronthosting.co.za> |
2010-07-18 15:16:51 | ocean-city | link | issue9295 messages |
2010-07-18 15:16:51 | ocean-city | create | |
|