NYUCCL / psiTurk

An open platform for science on Amazon Mechanical Turk.
https://psiturk.org
MIT License
277 stars 140 forks source link

Error during hit creation about JSON object #383

Closed tree-pi closed 5 years ago

tree-pi commented 5 years ago

I am running psiturk 2.3.5 under python 3.5 (somehow python 3.6 or 3.7 won't work at all). When doing hit create it returns:

Error during hit creation.
Response(Operation: create_hit | Status: error | Exception: the JSON object must be str, not 'bytes')

I traced back to create_hit() in aws_services_wrapper.py but don't see anything related with JSON...

deargle commented 5 years ago

More info on error messages with 3.6 or 3.7 please?

On Wed, Oct 9, 2019, 5:39 PM zhiweili notifications@github.com wrote:

I am running psiturk 2.3.5 under python 3.5 (somehow python 3.6 or 3.7 won't work at all). When doing hit create it returns:

Error during hit creation. Response(Operation: create_hit | Status: error | Exception: the JSON object must be str, not 'bytes')

I traced back to create_hit() in aws_services_wrapper.py but don't see anything related with JSON...

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/NYUCCL/psiTurk/issues/383?email_source=notifications&email_token=AAI6Y7MXPUNUEXBQSC637ODQNZTUZA5CNFSM4I7F7PK2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HQY5VUQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI6Y7MTTNIQY2XOQDHOBYDQNZTUZANCNFSM4I7F7PKQ .

tree-pi commented 5 years ago

Sure! The error is same in 3.6 / 3.7 (anaconda). After start psiturk, whatever the first command I put in (e.g. server on or mode), the following error returns and the psiturk quits.

python(27645,0x7fff8a614380) malloc: *** error for object 0x10b70a120: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
deargle commented 5 years ago

I'm pretty sure that's a gnureadline error, see https://github.com/NYUCCL/psiTurk/issues/371 , because gnureadline is compiled C and that is a C error message. I am going to guess that at some point, gnureadline got installed into your conda env, and is messing things up. You should remove it and let anaconda handle its own readline.

And I just realized that I forgot to make a new pip release with that fix. Hold on, I'll release 2.3.6

deargle commented 5 years ago

Okay, try 2.3.6 in a clean environment.

tree-pi commented 5 years ago

ok great! pip uninstall gnureadline then installed psiturk 2.3.6 in conda python 3.7. Everything works now

deargle commented 5 years ago

Hooray!