Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007593 [Squeak] System crash random 12-28-10 02:35 02-06-11 23:47
Reporter leves View Status public  
Assigned To leves
Priority normal Resolution fixed  
Status closed   Product Version trunk
Summary 0007593: Preferences is not thread-safe, but is being accessed concurrently
Description I just had an image freeze that I saw a few times before, even with 3.8 images. If you leave a Transcript open and a process is writing to it, then your image will freeze sooner or later with 100% CPU usage. The problem seems to be that the dictionary of Preferences is accessed concurrently. The dictionary was rehashed by a Process while another Process (the UI Process) was looking for a key in #scanFor:. Because of this the execution reached the last statement (self errorNoFreeSpace). I guess the debugger couldn't be opened, because the error is in the UI process.
Additional Information Here's the top of the stack trace of the UI process:

Process 0xb8af0878 priority 40
0xffe23a48 M Preferences class>preferenceAt:ifAbsent: -1203790052: a(n) Preferences class
0xffe23a68 M Preferences class>valueOfPreference:ifAbsent: -1203790052: a(n) Preferences class
0xffe23a88 M Preferences class>valueOfFlag:ifAbsent: -1203790052: a(n) Preferences class
0xffe23aa8 M Preferences class>subPixelRenderFonts -1203790052: a(n) Preferences class
0xffe23ac8 M GrafPort(BitBlt)>installStrikeFont:foregroundColor:backgroundColor: -1183465320: a(n) GrafPort
0xffe23aec M GrafPort>installStrikeFont:foregroundColor:backgroundColor: -1183465320: a(n) GrafPort
0xffe23b10 M StrikeFont>installOn:foregroundColor:backgroundColor: -1202043736: a(n) StrikeFont
0xffe23b34 M MultiDisplayScanner>setFont -1183465476: a(n) MultiDisplayScanner
0xffe23b4c M MultiDisplayScanner>setStopConditions -1183465476: a(n) MultiDisplayScanner
0xffe23b68 M MultiDisplayScanner>endOfRun -1183465476: a(n) MultiDisplayScanner
0xffe23b94 M MultiDisplayScanner>displayLine:offset:leftInRun: -1183465476: a(n) MultiDisplayScanner
0xffda8350 M MultiNewParagraph>displayOn:using:at: -1196648352: a(n) MultiNewParagraph
0xffda8378 M FormCanvas>paragraph:bounds:color: -1183465892: a(n) FormCanvas
0xffda83a0 M TextMorphForEditView(TextMorph)>drawOn: -1196757396: a(n) TextMorphForEditView
0xffda83bc M FormCanvas(Canvas)>draw: -1183465892: a(n) FormCanvas
0xffda83d8 M FormCanvas(Canvas)>drawMorph: -1183465892: a(n) FormCanvas
0xffda83f8 M [] in TextMorphForEditView(Morph)>fullDrawOn: -1196757396: a(n) TextMorphForEditView
Attached Files

- Relationships

- Notes
(0014010 - 146 - 146 - 146 - 146 - 146 - 146)
leves
01-07-11 18:38

The short term solution is to protect the dictionary with a semaphore or a mutex. The long term solution is to use pragma preferences exclusively.
 
(0014021 - 23 - 23 - 23 - 23 - 23 - 23)
leves
01-12-11 20:23

Fixed in System-ul.413.
 

- Issue History
Date Modified Username Field Change
12-28-10 02:35 leves New Issue
01-07-11 18:38 leves Note Added: 0014010
01-12-11 20:23 leves Status new => resolved
01-12-11 20:23 leves Fixed in Version  => trunk
01-12-11 20:23 leves Resolution open => fixed
01-12-11 20:23 leves Assigned To  => leves
01-12-11 20:23 leves Note Added: 0014021
02-06-11 23:47 leves Status resolved => closed


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
40 total queries executed.
32 unique queries executed.
Powered by Mantis Bugtracker