This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ocean-city
Recipients ocean-city
Date 2010-07-18.15:13:57
SpamBayes Score 0.0030276577
Marked as misclassified No
Message-id <1279466041.57.0.646628663384.issue9295@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2010-07-18 15:16:20ocean-cityunlinkissue9295 messages
2010-07-18 15:14:01ocean-citysetrecipients: + ocean-city
2010-07-18 15:14:01ocean-citysetmessageid: <1279466041.57.0.646628663384.issue9295@psf.upfronthosting.co.za>
2010-07-18 15:14:00ocean-citylinkissue9295 messages
2010-07-18 15:13:59ocean-citycreate