sockets and pipes and bad results
Marilyn Davis
marilyn at deliberate.com
Fri Sep 24 21:01:21 EDT 2004
Hello Python Gurus,
I'm having a problem when writing to a socket. It only happens when I
am also doing some piping into exim, my MTA. Like this:
./test1.py
>> Here test1.py sends email via my module, exim.py, which pipes the
>> message into exim. All the digits are the results from fileno()
>> calls, on the open socket or on open file descriptors.
exim pipe descriptors: 7 6 9
exim.py piped into 6
exim closed pipes: 6 7 9
>> Next, test1.py calls my module, xfer_pop.py to read mail from a pop
>> server, opening a socket:
xfer_pop.py: ['from test1:marilyn1', 'test', 2]
xfer_pop.py socket 6 opened and used: +OK fishgills.net POP MDaemon 7.0.1 ready <MDAEMON-F200409241735.AA355831MD5705 at fishgills.net>
>> After some conversation, it decides to collect message # 139 and
>> pipe it into exim:
XferMessage # 139.
xfer_pop socket before exim pipe: 6
exim pipe descriptors: 8 7 10
>> here it's piping the headers
exim.py piped into 7
>> and now it's trying to receive the body:
xfer_pop.py socket in loop: 6
Traceback (most recent call last):
File "./test1.py", line 254, in ?
exec(x)
File "<string>", line 1, in ?
File "./test1.py", line 143, in marilyn1
xfer_pop.main(['from test1:marilyn1', 'test', 2])
File "/b/bmail/scripts/xfer_pop.py", line 446, in main
popee.run()
File "/b/bmail/scripts/xfer_pop.py", line 338, in run
XferMessage(self, (str(msg)))
File "/b/bmail/scripts/xfer_pop.py", line 70, in __init__
more = self.popper.remote.recv(BLOCK)
socket.error: (9, 'Bad file descriptor')
---
My test1.py can call xfer_pop.py lots of times, piping into exim many
times each call, and it will always be successful, UNLESS test1.py
makes a call to exim.py first. Once that happens, a subsequent call
to xfer_pop.py crashes as above.
Can anyone suggest a possible cause or remedy?
Thank you for any help you can give.
Marilyn Davis
More information about the Python-list
mailing list