A novel issue with JATOS 3.9.8 (currently used on mindprobe)
Hi all.
We are using JATOS for multiplayer experiments for quite some time now - and we absolutely love it!
In the past few days it seems that (perhaps because mindprobe has updated its JATOS to 3.9.8) we are experiencing a strange bug - where all our participants get a message saying "Study run is already finished", whereas JATOS status if failed for all of them and we get a message saying "Inactive group member was forced to leave its group". I am not sure how to read into this exactly, so any help would be appreciated!
best,
Isaac
Comments
Hi Isaac,
Mindprobe was updated yesterday night to 3.9.8 and this message you get there ("Inactive group ...") is a message from the group cleaner which is a new feature introduced in 3.9.8.
The group cleaner searches regularly in the database for group members that abandoned a study and removes them from their group and finishes their study runs. This allows other, new participants to join the group. It does so only in group studies and only when the group member wasn't active for a while.
It's strange all your participants get this message.
Do you actually have a group study (is the group checkbox checked in the study properties)?
Would it be possible to get a study link for this study so I could experience the issue first hand?
Best,
Kristian
Hi Kristian.
Thank you for the prompt response. Yes - this is a group study, and we are actually using our own internally developed code to deal with inactive participants (we use more complicated logic that doesn't finish the study for everyone). So, for us, this new feature is quite problematic. The study is quite long (~50 minutes), and this happened ~20-30 minutes in.
The study internal link is https://jatos.mindprobe.eu/jatos/15359. Do you also need a participant link? (I am not sure it will be easy to identify by running it on yourself as a participant...).
In any case, if there is any chance you could make this feature optional (i.e., as a checkbox in the study properties), that would be quite cardinal for us, because in the meantime, we must stop running studies until this is fixed.
PS - any chance we can control this behavior with the jatos heartbeat parameters? e.g.,
jatos.channelHeartbeatTimeoutTimeI think I might have found the issue. In our study we are moving from group components (where onLoad runs joinGroup), and single participant components (where onLoad simply runs the jspsych routine). It seems that the transitions from the group to single participant components might have activated the cleaner routine (maybe in cases in which participants did not finish the groups components at the same time). It still might be useful if users would have some control over the cleaner routine parameters (e.g., idle time limits etc).
thanks!
Isaac
JATOS those settings in the jatos.conf. I just didn't come around to add them to the online documentation. But they are only for the whole JATOS instance and would therefore affect all studies on this server.
I could just change them on Mindprobe but I'd really like to understand what is happening in your group study and why the cleaner gets triggered in the middle of a study run at the wrong time. This should not happen because as long as a study is running it is sending heartbeats and as long as there is an heartbeat the group member doesn't get cleaned from the group. Could you please elaborate on your study design or maybe, if possible, send me the study?
Best,
Kristian
Hi Kristian.
I think I solved the problem in our study - it seemed to have something to do with inserting non-group components (where participants are not joining the group) in between two group components. So basically, it's a multiplayer word association task, where we used a component for instructions that runs code on on_load without joining the group, but it was followed by another group component. I fixed this by converting the last component to a non-group component and by explicitly leaving the group in all participants in the last group component. I also increased the frequency of heartbeats to reduce false alarms, but I think that the former fix is what actually did the job