I am writing to a unique script file . Each script file has prefixes like script1.sh script2.sh and they reside in different directories . The scripts will never trample each other since they are all sequential and shell scripts and no directory will have more than one shell script.
The only thing I am doing is dir1 and dir2 will each have a script1.sh . But that still makes it mutually exclusive paths. Hari On Dec 30, 5:34 pm, "Thomas L. Shinnick" <tshin...@io.com> wrote: > At 03:46 PM 12/30/2010, harijay wrote: > > >Hi, > >I am writing some multithreaded code which aims to automate three > >sequential data processing applications and distribute the processing > >on my 16GB RAM, 64 bit Ubuntu box running Python 2.6.5 > > >The basic class that orchestrates these jobs use Queue.Queue() to feed > >the product of the first job into the Queue for the next job. > > >Each Thread receives a dynamically generated shell script from some > >classes I wrote and then runs the script using > > >subprocess.call(["shell_script_file.sh"]) > > You say dynamically generated. Any chance you are (re)using the same > filename each time? Is it possible that two uses of that filename > could occur at the same time? That is, is it possible that at the > same time while one process is running from the script file, another > process is trying to re-write the script file? And so maybe you need > to have dynamically generated and unique filenames > > Most often I see references to binary executable files for the error > message, but I've also seen references to script files, e.g. > http://www.cyberciti.biz/faq/binbash-bad-interpreter-text-file-busy/ > > > > >I tested the code on a mac laptop and also on ubuntu. Curiously on Mac > >OSX 32 bit Core duo running snow leopard, the code always runs fine. > >However on my ubuntu box I get sporadic errors detailed below. > > >I tried replacing the > >subprocess.call() with > > >subprocess.Popen(["shellscriptfile.sh"],stdout=open("unique_process_id.log > >","w"),stderr=open("unique_error_log.log","w") > > >But I get the same "OSError: [Errno 26] Text file busy" error > > >Everytime I run the same job queue a different part of the job fails. > > >Unfortunately I dont see anybody else reporting this OSError. ANy help > >in troubleshooting my "newbie" thread code will be greatly > >appreciated. > > >Thanks > >hari > > >The orchestrator class is at: > >https://github.com/harijay/auriga/blob/master/process_multi.py > > >A sample thread subclass is at : > >https://github.com/harijay/auriga/blob/master/scatomtzrunthread.py > > >Detailed error: > > >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 "/home/hari/Dropbox/auriga/scatomtzrunthread.py", line 28, in > >run > > stat = subprocess.call([file]) > > File "/usr/lib/python2.6/subprocess.py", line 480, in call > > return Popen(*popenargs, **kwargs).wait() > > File "/usr/lib/python2.6/subprocess.py", line 633, in __init__ > > errread, errwrite) > > File "/usr/lib/python2.6/subprocess.py", line 1139, in > >_execute_child > > raise child_exception > >OSError: [Errno 26] Text file busy -- http://mail.python.org/mailman/listinfo/python-list