J
John Ladasky
Hi folks,
A tangent off of this thread:
http://groups.google.com/group/comp.lang.python/browse_frm/thread/751b7050c756c995#
I'm programming in Python 2.6 on Ubuntu Linux 10.10, if it matters.
I'm trying to track down a multiprocessing bug. Here's my traceback.
All lines of code referenced in the traceback are in the standard
library code:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in
__bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 284, in
_handle_tasks
put(task)
TypeError: expected string or Unicode object, NoneType found
Fortunately, I have a working version of my code. I was trying to add
new features, and only my new code is causing trouble. This has
allowed me to examine the contexts of task when everything works.
Task is not a string when the program works. Task is not None when
the program doesn't work. In fact, task is a deeply-nested tuple. NO
PART of this tuple ever contains any strings, as far as I can tell.
More details in my original thread.
Now, of course I've seen that the standard traceback shows you the
lines where various steps in a chain of function calls were taken.
The traceback skips over any lines in the code between successive
function calls, and assumes that you can follow along. No problem, I
can do that.
But when multiprocessing is involved, can this traceback be truncated
in some way, for example when code execution switches over to a
subprocess? I'm wondering if more code is getting executed after
"put(task)" that I'm not seeing.
Thanks for any information!
A tangent off of this thread:
http://groups.google.com/group/comp.lang.python/browse_frm/thread/751b7050c756c995#
I'm programming in Python 2.6 on Ubuntu Linux 10.10, if it matters.
I'm trying to track down a multiprocessing bug. Here's my traceback.
All lines of code referenced in the traceback are in the standard
library code:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in
__bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 284, in
_handle_tasks
put(task)
TypeError: expected string or Unicode object, NoneType found
Fortunately, I have a working version of my code. I was trying to add
new features, and only my new code is causing trouble. This has
allowed me to examine the contexts of task when everything works.
Task is not a string when the program works. Task is not None when
the program doesn't work. In fact, task is a deeply-nested tuple. NO
PART of this tuple ever contains any strings, as far as I can tell.
More details in my original thread.
Now, of course I've seen that the standard traceback shows you the
lines where various steps in a chain of function calls were taken.
The traceback skips over any lines in the code between successive
function calls, and assumes that you can follow along. No problem, I
can do that.
But when multiprocessing is involved, can this traceback be truncated
in some way, for example when code execution switches over to a
subprocess? I'm wondering if more code is getting executed after
"put(task)" that I'm not seeing.
Thanks for any information!