[Pkg-samba-maint] Bug#519829:

David J G Porter (Private) david at djgp.com
Mon Jul 20 12:48:12 UTC 2009


I _think_ I had the same problem until I set:

//|host msdfs|/ = no

/in smb.conf on the server. My setup doesn't involve DFS so this didn't
break anything else.

/I'm not a Samba expert so I can't tell you why that works and I can't
find an upstream bug report for anything like this.

In case anyone's interested, here's a summary of what I did:

*Server*
Debian 4.0 etch, up to date as of this post:
Linux morgaine 2.6.18-6-686 #1 SMP Tue May 5 00:40:20 UTC 2009 i686
GNU/Linux
Samba: 3.0.24-6etch10

*Clients*
OK: all M$ clients (XP, Vista), Ubuntu 8.04LTS
Bad: Ubuntu Jaunty 9.04

*Description*
I have a login script which maps various Samba network shares using
smbmount (mount.cifs). No special options. The problem occurred on all
shares. BUT, if I connected to a share via Gnome's Nautilus, the problem
did _NOT_ occur. I couldn't live with this because I needed CLI access
to most of them.

In the simplest case, the error could be caused by:

$ cd [shared directory]
$ echo > hello     (works fine if the file doesn't exist)
$ echo > hello
bash: hello: No such file or directory

It also occurs freely in all other apps, from Gedit to OpenOffice.

I set the log level to 10 and traced both cases (see below for
excerpts). In both cases, the shared path is
"//morgaine/david/Repository/tmp/hello" and real server path
"/home/david/Repository/tmp/hello".

In the smbmount case (where the error occurs), Samba visibly has a
problem resolving the SMB name using unix_convert() to the real
filesystem path: it ends up stat'ing
"morgaine/david/Repository/tmp/hello" instead of mapping
"morgaine/david" (the host and share name) to "/home/david". When using
the Nautilus share, call_trans2qfilepathinfo() is called instead, which
defers to various dfs routines before calling unix_convert. I thought
this was a clue and changed the "host msdfs" parameter on a hunch.
/
As I said, I have no idea what's going on, this was just deductive work.
I've ordered DVD's for lenny and will be upgrading next week, if
anyone's interested in the result.

HTH
 -- David

*USING SMBMOUNT*
[2009/07/20 09:29:14, 10]
lib/util_sock.c:read_smb_length_return_keepalive(623)
  got smb length of 158
[2009/07/20 09:29:14, 6] smbd/process.c:process_smb(1110)
  got message type 0x0 of len 0x9e
[2009/07/20 09:29:14, 3] smbd/process.c:process_smb(1111)
  Transaction 594 of length 162
[2009/07/20 09:29:14, 5] lib/util.c:show_msg(485)
[2009/07/20 09:29:14, 5] lib/util.c:show_msg(495)
  size=158
  smb_com=0x32
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=0
  smb_flg2=53249
  smb_tid=1
  smb_pid=12715
  smb_uid=100
  smb_mid=595
  smt_wct=15
  smb_vwv[ 0]=   82 (0x52)
  smb_vwv[ 1]=    8 (0x8)
  smb_vwv[ 2]=    2 (0x2)
  smb_vwv[ 3]= 4100 (0x1004)
  smb_vwv[ 4]=    0 (0x0)
  smb_vwv[ 5]=    0 (0x0)
  smb_vwv[ 6]=    0 (0x0)
  smb_vwv[ 7]=    0 (0x0)
  smb_vwv[ 8]=    0 (0x0)
  smb_vwv[ 9]=   82 (0x52)
  smb_vwv[10]=   68 (0x44)
  smb_vwv[11]=    8 (0x8)
  smb_vwv[12]=  150 (0x96)
  smb_vwv[13]=    1 (0x1)
  smb_vwv[14]=    6 (0x6)
  smb_bcc=93
[2009/07/20 09:29:14, 10] lib/util.c:dump_data(2222)
  [000] 00 00 00 FC 03 00 00 00  00 2F 00 2F 00 6D 00 6F  ........ ././.m.o
  [010] 00 72 00 67 00 61 00 69  00 6E 00 65 00 2F 00 64  .r.g.a.i .n.e./.d
  [020] 00 61 00 76 00 69 00 64  00 2F 00 52 00 65 00 70  .a.v.i.d ./.R.e.p
  [030] 00 6F 00 73 00 69 00 74  00 6F 00 72 00 79 00 2F  .o.s.i.t .o.r.y./
  [040] 00 74 00 6D 00 70 00 2F  00 68 00 65 00 6C 00 6C  .t.m.p./ .h.e.l.l
  [050] 00 6F 00 00 00 00 00 00  00 00 00 00 00           .o...... .....
[2009/07/20 09:29:14, 3] smbd/process.c:switch_message(915)
  switch message SMBtrans2 (pid 24093) conn 0x841cc18
[2009/07/20 09:29:14, 4] smbd/uid.c:change_to_user(178)
  change_to_user: Skipping user change - already user
[2009/07/20 09:29:14, 5] smbd/filename.c:unix_convert(108)
  unix_convert called on file "morgaine/david/Repository/tmp/hello"
[2009/07/20 09:29:14, 5] smbd/filename.c:unix_convert(185)
  unix_convert begin: name = morgaine/david/Repository/tmp/hello,
dirpath = , start = morgaine/david/Repository/tmp/hello
[2009/07/20 09:29:14, 3] smbd/trans2.c:call_trans2setfilepathinfo(3833)
  call_trans2setfilepathinfo: stat of
morgaine/david/Repository/tmp/hello failed (No such file or directory)
[2009/07/20 09:29:14, 10] smbd/trans2.c:set_bad_path_error(2677)
  set_bad_path_error: err = 2 bad_path = 0
[2009/07/20 09:29:14, 3] smbd/error.c:error_packet(146)
  error packet at smbd/trans2.c(2683) cmd=50 (SMBtrans2)
NT_STATUS_OBJECT_NAME_NOT_FOUND
...

*USING NAUTILUS*
[2009/07/20 09:23:00, 10]
lib/util_sock.c:read_smb_length_return_keepalive(623)
  got smb length of 130
[2009/07/20 09:23:00, 6] smbd/process.c:process_smb(1110)
  got message type 0x0 of len 0x82
[2009/07/20 09:23:00, 3] smbd/process.c:process_smb(1111)
  Transaction 122 of length 134
[2009/07/20 09:23:00, 5] lib/util.c:show_msg(485)
[2009/07/20 09:23:00, 5] lib/util.c:show_msg(495)
  size=130
  smb_com=0x32
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=0
  smb_flg2=55297
  smb_tid=1
  smb_pid=13186
  smb_uid=101
  smb_mid=123
  smt_wct=15
  smb_vwv[ 0]=   62 (0x3E)
  smb_vwv[ 1]=    0 (0x0)
  smb_vwv[ 2]=   10 (0xA)
  smb_vwv[ 3]=16644 (0x4104)
  smb_vwv[ 4]=    0 (0x0)
  smb_vwv[ 5]=    0 (0x0)
  smb_vwv[ 6]=    0 (0x0)
  smb_vwv[ 7]=    0 (0x0)
  smb_vwv[ 8]=    0 (0x0)
  smb_vwv[ 9]=   62 (0x3E)
  smb_vwv[10]=   68 (0x44)
  smb_vwv[11]=    0 (0x0)
  smb_vwv[12]=  130 (0x82)
  smb_vwv[13]=    1 (0x1)
  smb_vwv[14]=    5 (0x5)
  smb_bcc=65
[2009/07/20 09:23:00, 10] lib/util.c:dump_data(2222)
  [000] 00 44 20 07 01 00 00 00  00 5C 00 6D 00 6F 00 72  .D ..... .\.m.o.r
  [010] 00 67 00 61 00 69 00 6E  00 65 00 5C 00 73 00 68  .g.a.i.n .e.\.s.h
  [020] 00 61 00 72 00 65 00 64  00 5C 00 73 00 77 00 61  .a.r.e.d .\.s.w.a
  [030] 00 70 00 5C 00 68 00 65  00 6C 00 6C 00 6F 00 00  .p.\.h.e .l.l.o..
  [040] 00                                                .
[2009/07/20 09:23:00, 3] smbd/process.c:switch_message(915)
  switch message SMBtrans2 (pid 24102) conn 0x841d870
[2009/07/20 09:23:00, 4] smbd/uid.c:change_to_user(178)
  change_to_user: Skipping user change - already user
[2009/07/20 09:23:00, 3] smbd/trans2.c:call_trans2qfilepathinfo(2912)
  call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 263
[2009/07/20 09:23:00, 10] smbd/msdfs.c:parse_processed_dfs_path(91)
  temp in parse_processed_dfs_path: .morgaine/shared/swap/hello. after
trimming \'s
[2009/07/20 09:23:00, 10] smbd/msdfs.c:parse_processed_dfs_path(101)
  parse_processed_dfs_path: hostname: morgaine
[2009/07/20 09:23:00, 10] smbd/msdfs.c:parse_processed_dfs_path(113)
  parse_processed_dfs_path: servicename: shared
[2009/07/20 09:23:00, 10] smbd/msdfs.c:parse_processed_dfs_path(123)
  parse_processed_dfs_path: rest of the path: swap/hello
[2009/07/20 09:23:00, 10] smbd/msdfs.c:resolve_dfs_path(337)
  resolve_dfs_path: Conn path = /srv/samba/shared req_path = swap/hello
[2009/07/20 09:23:00, 5] smbd/filename.c:unix_convert(108)
  unix_convert called on file "swap/hello"
[2009/07/20 09:23:00, 5] smbd/filename.c:unix_convert(180)
  conversion finished swap/hello -> swap/hello
[2009/07/20 09:23:00, 8] lib/util.c:is_in_path(1814)
  is_in_path: swap/hello
[2009/07/20 09:23:00, 8] lib/util.c:is_in_path(1834)
  is_in_path: match not found
[2009/07/20 09:23:00, 3] smbd/vfs.c:reduce_name(923)
  reduce_name [swap/hello] [/srv/samba/shared]
[2009/07/20 09:23:00, 10] smbd/vfs.c:reduce_name(992)
  reduce_name realpath [swap/hello] -> [/srv/samba/shared/swap/hello]
[2009/07/20 09:23:00, 3] smbd/vfs.c:reduce_name(1029)
  reduce_name: swap/hello reduced to /srv/samba/shared/swap/hello
[2009/07/20 09:23:00, 3] smbd/trans2.c:call_trans2qfilepathinfo(2963)
  call_trans2qfilepathinfo swap/hello (fnum = -1) level=263 call=5
total_data=0
[2009/07/20 09:23:00, 8] smbd/dosmode.c:dos_mode(377)
  dos_mode: swap/hello
[2009/07/20 09:23:00, 8] smbd/dosmode.c:dos_mode_from_sbuf(193)
  dos_mode_from_sbuf returning
[2009/07/20 09:23:00, 8] smbd/dosmode.c:dos_mode(415)
  dos_mode returning
[2009/07/20 09:23:00, 10] smbd/trans2.c:call_trans2qfilepathinfo(3273)
  call_trans2qfilepathinfo: SMB_FILE_ALL_INFORMATION
...

*USING SMBMOUNT (with msdfs = no)*
[2009/07/20 14:34:52, 10]
lib/util_sock.c:read_smb_length_return_keepalive(623)
  got smb length of 116
[2009/07/20 14:34:52, 6] smbd/process.c:process_smb(1110)
  got message type 0x0 of len 0x74
[2009/07/20 14:34:52, 3] smbd/process.c:process_smb(1111)
  Transaction 13 of length 120
[2009/07/20 14:34:52, 5] lib/util.c:show_msg(485)
[2009/07/20 14:34:52, 5] lib/util.c:show_msg(495)
  size=116
  smb_com=0x32
  smb_rcls=0
  smb_reh=0
  smb_err=0
  smb_flg=0
  smb_flg2=49153
  smb_tid=1
  smb_pid=3956
  smb_uid=100
  smb_mid=1717
  smt_wct=15
  smb_vwv[ 0]=   50 (0x32)
  smb_vwv[ 1]=    0 (0x0)
  smb_vwv[ 2]=    2 (0x2)
  smb_vwv[ 3]= 4000 (0xFA0)
  smb_vwv[ 4]=    0 (0x0)
  smb_vwv[ 5]=    0 (0x0)
  smb_vwv[ 6]=    0 (0x0)
  smb_vwv[ 7]=    0 (0x0)
  smb_vwv[ 8]=    0 (0x0)
  smb_vwv[ 9]=   50 (0x32)
  smb_vwv[10]=   66 (0x42)
  smb_vwv[11]=    0 (0x0)
  smb_vwv[12]=    0 (0x0)
  smb_vwv[13]=    1 (0x1)
  smb_vwv[14]=    5 (0x5)
  smb_bcc=51
[2009/07/20 14:34:52, 10] lib/util.c:dump_data(2222)
  [000] 00 00 02 00 00 00 00 2F  00 52 00 65 00 70 00 6F  ......./ .R.e.p.o
  [010] 00 73 00 69 00 74 00 6F  00 72 00 79 00 2F 00 74  .s.i.t.o .r.y./.t
  [020] 00 6D 00 70 00 2F 00 68  00 65 00 6C 00 6C 00 6F  .m.p./.h .e.l.l.o
  [030] 00 00 00                                          ...
[2009/07/20 14:34:52, 3] smbd/process.c:switch_message(915)
  switch message SMBtrans2 (pid 26063) conn 0x841c5d8
[2009/07/20 14:34:52, 4] smbd/uid.c:change_to_user(178)
  change_to_user: Skipping user change - already user
[2009/07/20 14:34:52, 3] smbd/trans2.c:call_trans2qfilepathinfo(2912)
  call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 512
[2009/07/20 14:34:52, 5] smbd/filename.c:unix_convert(108)
  unix_convert called on file "Repository/tmp/hello"
[2009/07/20 14:34:52, 5] smbd/filename.c:unix_convert(180)
  conversion finished Repository/tmp/hello -> Repository/tmp/hello
[2009/07/20 14:34:52, 8] lib/util.c:is_in_path(1814)
  is_in_path: Repository/tmp/hello
[2009/07/20 14:34:52, 8] lib/util.c:is_in_path(1834)
  is_in_path: match not found
[2009/07/20 14:34:52, 3] smbd/vfs.c:reduce_name(923)
  reduce_name [Repository/tmp/hello] [/home/david]
[2009/07/20 14:34:52, 10] smbd/vfs.c:reduce_name(992)
  reduce_name realpath [Repository/tmp/hello] ->
[/home/david/Repository/tmp/hello]
[2009/07/20 14:34:52, 3] smbd/vfs.c:reduce_name(1029)
  reduce_name: Repository/tmp/hello reduced to
/home/david/Repository/tmp/hello
[2009/07/20 14:34:52, 3] smbd/trans2.c:call_trans2qfilepathinfo(2963)
  call_trans2qfilepathinfo Repository/tmp/hello (fnum = -1) level=512
call=5 total_data=0
[2009/07/20 14:34:52, 8] smbd/dosmode.c:dos_mode(377)
  dos_mode: Repository/tmp/hello
[2009/07/20 14:34:52, 8] smbd/dosmode.c:dos_mode_from_sbuf(193)
  dos_mode_from_sbuf returning a
[2009/07/20 14:34:52, 8] smbd/dosmode.c:dos_mode(415)
  dos_mode returning a
[2009/07/20 14:34:52, 10] smbd/trans2.c:call_trans2qfilepathinfo(3408)
  call_trans2qfilepathinfo: SMB_QUERY_FILE_UNIX_BASIC
[2009/07/20 14:34:52, 4] smbd/trans2.c:call_trans2qfilepathinfo(3409)
  call_trans2qfilepathinfo: st_mode=100700
...

/
/





More information about the Pkg-samba-maint mailing list