[Samba] NT_STATUS_OBJECT_NAME_NOT_FOUND when print client tries to
write to \epmapper named pipe
Leonardo Tancredi
wintermute at fibertel.com.ar
Tue Apr 29 07:01:39 GMT 2008
Hello all,
I've googled this but couldn't find anything relevant and the list's
archives didn't turn anything either, so pretty please someone take a
look at this if you can spare a moment.
My Samba server shares its CUPS printer, but Windows clients cannot
print to it (I haven't tried other CIFS clients). I have the
point-n-print driver all set up, so the Windows XP Pro clients can
automatically detect this printer and load the driver (I'm also able to
set the server default settings so the devmode is OK). But once the
printer is set up in the Windows client, the test page doesn't print.
The Windows driver says there's a communication problem with the
printer, and looking at logfiles and traffic captures I see the problem
is that the client is trying to do an NTCreate_and_X operation to open a
named pipe called "\epmapper" but Samba answers with an
NT_STATUS_OBJECT_NAME_NOT_FOUND message. The client retries this
operation a couple of times and then gives up.
I'm testing this by connecting to the server from a non-domain-member
machine, but by manually setting the correct username and password with
the "net use \\myserver /user:muserver\myprinteradminusername itspass"
command on a Windows command-line. The client and the server are both on
the same Workgroup.
In case you're wondering, my /var/spool/samba directory exists and has
mode 1777.
Here's a level 10 log (only the interesting part; ask if you need all of
it):
-----------------------
[2008/04/29 02:30:04, 10] lib/util.c:dump_data(2264)
[000] 00 5C 00 65 00 70 00 6D 00 61 00 70 00 70 00 65 .\.e.p.m .a.p.p.e
[010] 00 72 00 00 00 .r...
[2008/04/29 02:30:04, 3] smbd/process.c:switch_message(926)
switch message SMBntcreateX (pid 16016) conn 0x555555c09660
[2008/04/29 02:30:04, 4] smbd/uid.c:change_to_user(183)
change_to_user: Skipping user change - already user
[2008/04/29 02:30:04, 10] smbd/nttrans.c:reply_ntcreate_and_X(515)
reply_ntcreate_and_X: flags = 0x16, access_mask = 0x2019f
file_attributes = 0x0, share_access = 0x3, create_disposition = 0x1
create_options = 0x40 root_dir_fid = 0x0
[2008/04/29 02:30:04, 4] smbd/nttrans.c:nt_open_pipe(328)
nt_open_pipe: Opening pipe \epmapper.
[2008/04/29 02:30:04, 3] smbd/error.c:error_packet_set(106)
error packet at smbd/nttrans.c(343) cmd=162 (SMBntcreateX)
NT_STATUS_OBJECT_NAME_NOT_FOUND
-----------------------
Here's an strace of smbd (also abridged); notice that the real uid 501
corresponds to the one chosen by the "net use" command:
-----------------------
write(20, "[2008/04/29 02:35:56, 10] lib/util.c:dump_data(2264)\n", 53) = 53
geteuid() = 501
write(20, " [000] 00 5C 00 65 00 70 00 6D 00 61 00 70 00 70 00 65
.\\.e.p.m .a.p.p.e\n", 76) = 76
geteuid() = 501
write(20, " [010] 00 72 00 00 00
.r... \n", 65) = 65
stat("/etc/localtime", {st_mode=S_IFREG|0664, st_size=1882, ...}) = 0
geteuid() = 501
write(20, "[2008/04/29 02:35:56, 3]
smbd/process.c:switch_message(926)\n", 60) = 60
geteuid() = 501
write(20, " switch message SMBntcreateX (pid 17224) conn
0x555555c094d0\n", 62) = 62
stat("/etc/localtime", {st_mode=S_IFREG|0664, st_size=1882, ...}) = 0
geteuid() = 501
write(20, "[2008/04/29 02:35:56, 4] smbd/uid.c:change_to_user(183)\n",
56) = 56
geteuid() = 501
write(20, " change_to_user: Skipping user change - already user\n", 54)
= 54
stat("/etc/localtime", {st_mode=S_IFREG|0664, st_size=1882, ...}) = 0
geteuid() = 501
write(20, "[2008/04/29 02:35:56, 10]
smbd/nttrans.c:reply_ntcreate_and_X(515)\n", 67) = 67
geteuid() = 501
write(20, " reply_ntcreate_and_X: flags = 0x16, access_mask = 0x2019f
file_attributes = 0x0, share_access = 0x3, create_dispositio"..., 169) = 169
stat("/etc/localtime", {st_mode=S_IFREG|0664, st_size=1882, ...}) = 0
geteuid() = 501
write(20, "[2008/04/29 02:35:56, 4] smbd/nttrans.c:nt_open_pipe(328)\n",
58) = 58
geteuid() = 501
write(20, " nt_open_pipe: Opening pipe \\epmapper.\n", 40) = 40
stat("/etc/localtime", {st_mode=S_IFREG|0664, st_size=1882, ...}) = 0
geteuid() = 501
write(20, "[2008/04/29 02:35:56, 3]
smbd/error.c:error_packet_set(106)\n", 60) = 60
geteuid() = 501
write(20, " error packet at smbd/nttrans.c(343) cmd=162 (SMBntcreateX)
NT_STATUS_OBJECT_NAME_NOT_FOUND\n", 93) = 93
-----------------------
Here's my smb.conf:
-----------------------
[global]
workgroup = CASITA
netbios name = RAINBOW
server string = Samba Server
security = USER
encrypt passwords = Yes
passdb backend = tdbsam
domain master = Yes
local master = Yes
preferred master = Yes
os level = 35
guest account = sambaguest
map to guest = Bad User
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = No
wins support = Yes
name resolve order = wins lmhosts host bcast
pid directory = /var/run/samba
lock directory = /var/cache/samba
max smbd processes = 30
domain logons = Yes
logon script = scripts\login.bat OR scripts\%U.bat
logon path = \\%L\Profiles\%U
logon drive = H:
logon home = \\%L\%U\.9xprofile
time server = Yes
idmap uid = 15000-20000
idmap gid = 15000-20000
printing = cups
load printers = No
printcap name = cups
cups options = "raw"
log level = 10
log file = /var/log/samba/log.%m
max log size = 10000
hosts allow = 192.168.1.0/24 127.0.0.0/8
hosts deny = ALL
unix password sync = No
nt acl support = Yes
[printers]
comment = All Printers
printable = Yes
path = /var/spool/samba
browseable = No
read only = Yes
guest ok = No
printer admin = root, at ntadmins
valid users = @ntadmins, root
[LEXX1270]
comment = "Lexmark X1270"
path = /var/spool/samba
printable = Yes
browseable = Yes
read only = Yes
guest ok = No
valid users = @ntadmins,root
[print$]
comment = Point-n-Print Driver Download Area
path = /opt/samba/shares/printdrivers
browseable = No
read only = Yes
guest ok = No
write list = @ntadmins, root
valid users = @ntadmins, root
-----------------------
Please share some insight about what's going on here, because I'm stumped.
Thanks,
L.
More information about the samba
mailing list