Bad file descriptors with samba-2.2.x -- more details.
wolfgang.glas at ev-i.at
wolfgang.glas at ev-i.at
Thu Jun 27 10:57:04 GMT 2002
Dear samba team,
It's now been several weeks we had two short threads without results on
the Badfile desciptor errors here on this list.
In thge meanwhile I received more feedback from users experiencing the
same problem (see cc-list above), most notable the contribution of Kid Mun
Yap, which should really bring us into the position to make the problem
reproduceable.
According to him I will snip the contents of his postings and add them
below.
In short, he experiences the Bad filedescriptor error in sys_lseek,
when the
lpq command=
parameter is set to an empty string (as in the line above). In his example
this is due to some problems with the samba printer initialization code,
other user (including me) had set an empty string inside their smb.conf,
because they were configuriong special printer not addressable via lpr
etc...
Other symptoms are corrupted files (in my case files, which were opened
by users, in other cases on my server and on Kid Yun's server, log.amb was
corrupted), which are filled with the contents of print jobs (Postscript
code, e.g.).
I don't know, whether this is the only occasion for the Bad file
descriptor to appear in the log, since other users are experienceing
similar error, when their tdb-files are on reiserfs or XFS.
In both situations, a wrong lpq command or a tdb corruption, it seem
really weird to me experiencing bad file descriptor errors on user files
rather than file error from tdb or errors from the printer queue code, so
even the fact, that samba has a tendency to corrupt user files in a
situation, when some seondary resource shows a failure, seem to be a samba
bug.
So I kindly request all users experiencing the problem to check their
lpq command setting and hopefully we can enable Jeremy or any other samba
team member to reproduce the problem.
Regards,
Wolfgang
----first message of Kid Mun Yap-------------------
Hi,
I recently encountered what could be the same problem and when I searched
on google I found the article you posted. The thread in the archive seem
to
have just ended with no solution (was it progressed any further?).
Anyway...
I encountered exactly the same symptoms (file corruption lseek bad file
descriptor errors in the log, junk in the log that seems to be part of
files etc.).
After looking on the net and finding your article but still no solution I
did some
very frustrating debugging and tracked my problem down to the printing
process...
My samba was compiled to default to CUPS printing but in my config I
changed it to bsd and as a result the "lpq command" was empty, so
everytime I printed something to my fax printer, the client tried to query
for
the queue state from samba and samba, after a few times attempting to use
an empty lpq command, goes crazy and causes all the above errors. I fixed
it
by placing 'lpq command = /bin/echo'.
This may or may not be the same problem as yours but thought you might
like to know.
Regards,
Kid Mun
----second message by Kid Mun Yap------------------
> BTW, May I forward your message to the samba list ?
>
No problem. I would post it myself but I'm not currently subscribed.
> Do you have more detailed information on "my samba was going crazy..."
I was experiencing a lot of problems. Files that I would open would get
corrupted after printing, with errors like the following
popping up...
[2002/06/27 22:10:43, 0] smbd/fileio.c:seek_file(43)
seek_file: (Server Documents/Document.doc) sys_lseek failed. Error was
Bad file descriptor
A lot of junk which looks like parts of printed files were getting into
the log as well (since I had the printer set up as a
postscript printer, these were parts of postscript files).
The corrupted files were actually getting bigger, I suspect parts of the
printed files were getting into them as well, but I
couldn't confirm for sure.
The reason why I detected the problem was because I was already looking at
the samba print initialisation code, and
discovered that...
printing=bsd
when you don't have bsd compiled as default doesn't really work
(I suspect because init_printer_values gets called from init_globals in
param/loadparm.c before any parameters are read,
hence before printing=bsd has been processed, I also believe someone has
reported this problem before a long while back).
Anyway, as a result all my printer related settings were empty instead of
having the proper default value, but the lpq
command being empty seems to cause samba a lot of grieve, probably because
it gets used everytime the client queries for
a queue status (which from what I can gather is quite often). I haven't
gotten around to look at the exact cause of the problem
(why an empty lpq command should cause such a catastrophic chain of event)
though.
Hope this helps.
Regards,
Kid Mun
PS: Feel free to post all or part of this email to samba-technical.
--------end of forwarded messages-------------------
More information about the samba-technical
mailing list