Anonymous | Login | 03-03-2021 00:01 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | |||||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
0005709 | [Croquet] Hedgehog | minor | random | 01-07-07 21:40 | 02-01-07 04:17 | |||||||
Reporter | howardstearns | View Status | public | |||||||||
Assigned To | ||||||||||||
Priority | normal | Resolution | open | |||||||||
Status | new | |||||||||||
Summary | 0005709: FarRefMap not thread-safe | |||||||||||
Description |
I sometimes get errors within FarRefMap operations like #growTo:, where indexes aren't valid any more. Island exports is a FarRefMap which contains a weak array, and has several operations that are written assuming that they will be atomic with respect to changes in that array. |
|||||||||||
Additional Information |
I have only observed this problem with KCroquetParticipant, which uses quite a few asynchronous processes in addition to the ones used by other CroquetParticipants. (Decoding of streaming media, EmbeddedApp updates, asynchrounous sync'ing of new islands...) It could be that these are broken. Or it could be that I only see this in KCroquetParticipant because it's the only Participant that I leave running for several days. (Other bugs like 5695 and 5708 keep other Participants from running with user interaction for that long.) The attached changeset adds a mutex to FarRefMap, which is used by all the operations that might be so affected. This is not in a K...-specific subclass because Island default needs the mutex, too. It might be a good idea to instument the mutex locking to see what processes are interfering with each other. I haven't had time to do that yet, but I wanted to report this in case anyone else was struggling with the same problem. |
|||||||||||
Attached Files |
![]() |
|||||||||||
|
![]() |
|
(0008875 - 260 - 272 - 432 - 432 - 432 - 432) howardstearns 01-13-07 20:20 |
In Islands-ar.40, Andreas noticed and removed a transcript send from FarRefMap>>findElementOrFlag:. It's possible that this simple change will fix the problem, per https://lists.wisc.edu/read/messages?id=1282867#1282867 [^] But it's not easy to test positively... |
(0008877 - 209 - 215 - 215 - 215 - 215 - 215) howardstearns 01-14-07 17:11 |
I got the error again after using Islands-ar.40 and not using ThreadSafeFarRefMap.3.cs. This was on a headless FreeBSD after six hours of being connected overnight over WAN to a Mac and a Windows participant. |
(0009317 - 91 - 91 - 91 - 91 - 91 - 91) howardstearns 02-01-07 04:17 |
The ThreadSafeFarRefMap changeset is incorporated into Islands-ar.41.mcz in the repository. |
Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
46 total queries executed. 32 unique queries executed. |