Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_pickle.UnpicklingError: invalid load key, '\x00' #1

Open
dmalyuta opened this issue May 11, 2019 · 2 comments
Open

_pickle.UnpicklingError: invalid load key, '\x00' #1

dmalyuta opened this issue May 11, 2019 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@dmalyuta
Copy link
Owner

Traceback from Hyak:

Traceback (most recent call last):
  File "/gscratch/stf/danylo/lcss/lib/main.py", line 25, in <module>
    main()
  File "/gscratch/stf/danylo/lcss/lib/main.py", line 20, in main
    scheduler.main()
  File "/gscratch/stf/danylo/lcss/lib/scheduler.py", line 528, in main
    scheduler.spin()
  File "/gscratch/stf/danylo/lcss/lib/scheduler.py", line 412, in spin
    status = self.status_msg[i].receive('newest')
  File "/gscratch/stf/danylo/lcss/lib/tools.py", line 108, in receive
    msg_available,data = self.req.test()
  File "mpi4py/MPI/Request.pyx", line 243, in mpi4py.MPI.Request.test
  File "mpi4py/MPI/msgpickle.pxi", line 434, in mpi4py.MPI.PyMPI_test
  File "mpi4py/MPI/msgpickle.pxi", line 404, in mpi4py.MPI.PyMPI_load
  File "mpi4py/MPI/msgpickle.pxi", line 111, in mpi4py.MPI.Pickle.load
  File "mpi4py/MPI/msgpickle.pxi", line 101, in mpi4py.MPI.Pickle.cloads
_pickle.UnpicklingError: invalid load key, '\x00'.
n2149.hyak.local.28388Exhausted 1048576 MQ irecv request descriptors, which usually indicates a user program error or insufficient request d\
escriptors (PSM2_MQ_RECVREQS_MAX=1048576)
@dmalyuta dmalyuta added the bug Something isn't working label May 11, 2019
@dmalyuta dmalyuta self-assigned this May 11, 2019
@dmalyuta
Copy link
Owner Author

Relevant thread

@dmalyuta
Copy link
Owner Author

Possibly fixed this issue by using a MAX_ASYNC_SEND variable and implementing the relevant functionality in tools.py:MPICommunicator:send() which waits until scheduler reads the worker's messages once the buffer of messages is full up to MAX_ASYNC_SEND. This makes sure that at most MAX_ASYNC_SEND*(MPI.COMM_WORLD.Get_size()-1) messages are ever in the MPI message pipe, which will hopefully be not too much and prevent an overflow of messages that (I think) is what is causing the above issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant