ellxc / piperbot

old version of the new and improved pyperbot
GNU General Public License v2.0
2 stars 4 forks source link

Issue Pickling. #58

Closed egelmex closed 9 years ago

egelmex commented 9 years ago
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 949, in save_module
    state=_main_dict)
  File "/usr/lib64/python3.4/pickle.py", line 627, in save_reduce
    save(state)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 658, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 814, in save_dict
    self._batch_setitems(obj.items())
  File "/usr/lib64/python3.4/pickle.py", line 840, in _batch_setitems
    save(v)
  File "/usr/lib64/python3.4/pickle.py", line 524, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib64/python3.4/pickle.py", line 627, in save_reduce
    save(state)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 658, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 814, in save_dict
    self._batch_setitems(obj.items())
  File "/usr/lib64/python3.4/pickle.py", line 840, in _batch_setitems
    save(v)
  File "/usr/lib64/python3.4/pickle.py", line 524, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib64/python3.4/pickle.py", line 598, in save_reduce
    save(cls)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 993, in save_type
    StockPickler.save_global(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 915, in save_global
    (obj, module_name, name))
ellxc commented 9 years ago

errr no idea

egelmex commented 9 years ago

Might have missed some of the error, tmux copy paste fail. Will reproduce tonight.

egelmex commented 9 years ago
PRIVMSG #bunix:PicklingError: Can't pickle <class '_json.Scanner'>: it's n
ot found as _json.Scanner
*** print_tb:
  File "piperbot.py", line 373, in handle_command
    pipe.send(None)
  File "piperbot.py", line 539, in argpass
    target.send(None)
  File "/home/me92/documents/projects/piperbot/wrappers.py", line 87, in inner
    target.send(x)
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 470, in calc
    for response in eval_(arg.text.strip(), env):
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 239, in eval_
    env = eval_assign(stmt_or_expr, env)
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 248, in eval_assign
    val = timed(eval_expr, args=(node.value, env))
  File "/home/me92/documents/projects/piperbot/wrappers.py", line 256, in timed
    result = pool.apply_async(run_dill_encoded, (dill.dumps((func, args, kwargs)),))
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 192, in dumps
    dump(obj, file, protocol, byref, fmode)#, strictio)
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 182, in dump
    pik.dump(obj)
  File "/usr/lib64/python3.4/pickle.py", line 412, in dump
    self.save(obj)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/usr/lib64/python3.4/pickle.py", line 729, in save_tuple
    save(element)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/usr/lib64/python3.4/pickle.py", line 729, in save_tuple
    save(element)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 658, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 814, in save_dict
    self._batch_setitems(obj.items())
  File "/usr/lib64/python3.4/pickle.py", line 840, in _batch_setitems
    save(v)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 949, in save_module
    state=_main_dict)
  File "/usr/lib64/python3.4/pickle.py", line 627, in save_reduce
    save(state)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 658, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 814, in save_dict
    self._batch_setitems(obj.items())
  File "/usr/lib64/python3.4/pickle.py", line 840, in _batch_setitems
    save(v)
  File "/usr/lib64/python3.4/pickle.py", line 524, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib64/python3.4/pickle.py", line 627, in save_reduce
    save(state)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 658, in save_module_dict
    StockPickler.save_dict(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 814, in save_dict
    self._batch_setitems(obj.items())
  File "/usr/lib64/python3.4/pickle.py", line 840, in _batch_setitems
    save(v)
  File "/usr/lib64/python3.4/pickle.py", line 524, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib64/python3.4/pickle.py", line 598, in save_reduce
    save(cls)
  File "/usr/lib64/python3.4/pickle.py", line 479, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/me92/.virtualenvs/piper/lib/python3.4/site-packages/dill/dill.py", line 993, in save_type
    StockPickler.save_global(pickler, obj)
  File "/usr/lib64/python3.4/pickle.py", line 915, in save_global
    (obj, module_name, name))
egelmex commented 9 years ago

that might not be the same error

egelmex commented 9 years ago

this is the error you are looking for.

graymalkin commented 9 years ago

pickle.py makes me suspicious - I thought you were using dill?

ellxc commented 9 years ago

pickle is still used by multiprocess stuff, if you could work out from where this starts that would be helpful, is this on startup or is it from a certain command etc

graymalkin commented 9 years ago

Judging from the pytb it's in the command wrapper on seval

*** print_tb:
  File "piperbot.py", line 373, in handle_command
    pipe.send(None)
  File "piperbot.py", line 539, in argpass
    target.send(None)
  File "/home/me92/documents/projects/piperbot/wrappers.py", line 87, in inner
    target.send(x)
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 470, in calc
    for response in eval_(arg.text.strip(), env):
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 239, in eval_
    env = eval_assign(stmt_or_expr, env)
  File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 248, in eval_assign
    val = timed(eval_expr, args=(node.value, env))
  File "/home/me92/documents/projects/piperbot/wrappers.py", line 256, in timed
    result = pool.apply_async(run_dill_encoded, (dill.dumps((func, args, kwargs)),))
# ...
egelmex commented 9 years ago

after a #ning

On Wed, 8 Apr 2015 at 12:52 Simon Cooksey notifications@github.com wrote:

Judging from the pytb it's in the command wrapper on seval

*\ print_tb: File "piperbot.py", line 373, in handlecommand pipe.send(None) File "piperbot.py", line 539, in argpass target.send(None) File "/home/me92/documents/projects/piperbot/wrappers.py", line 87, in inner target.send(x) File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 470, in calc for response in eval(arg.text.strip(), env): File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 239, in eval_ env = eval_assign(stmt_or_expr, env) File "/home/me92/documents/projects/piperbot/plugins/seval.py", line 248, in eval_assign val = timed(eval_expr, args=(node.value, env)) File "/home/me92/documents/projects/piperbot/wrappers.py", line 256, in timed result = pool.apply_async(run_dill_encoded, (dill.dumps((func, args, kwargs)),))

...

— Reply to this email directly or view it on GitHub https://github.com/ellxc/piperbot/issues/58#issuecomment-90890094.

ellxc commented 9 years ago

does a normal seval call cause the same issue?

egelmex commented 9 years ago

What would I do to test?

On Wed, 8 Apr 2015 at 13:27 ellxc notifications@github.com wrote:

does a normal seval call cause the same issue?

— Reply to this email directly or view it on GitHub https://github.com/ellxc/piperbot/issues/58#issuecomment-90899331.

egelmex commented 9 years ago

> hour = datetime.now().hour;

causes the issue.

ellxc commented 9 years ago

this might have been fixed in the latest commit to seval.py

egelmex commented 9 years ago

seems to work.