[Samba] : Win XP Client does not remove directories
Björn Mayer
bjoern.mayer at siempelkamp.com
Fri Apr 28 11:58:45 GMT 2006
Hello mailinglist,
I have a strange problem, which occurs sometimes on some WinXP clients.
It is not 100% reproducable for me, but it returns regular.
The problem is, that somehow a user can't delete a directory. All files
in the directory will be removed successfully, but the directory itself
not.
Deleting with the Explorer or over the cmd-console returns in the same
result.
First the command seemed to be successful, but after one refresh all
"deleted" folders are back again, because they aren't physically removed
from the linux-box.
I don't know, if it is an Samba or Windows Problem, because if i went to
another XP machine and do exactly the same (including connecting with
the same user and passwd) the folder will be removed successfully.
Often one (sometimes more than one) restart on the "infected" PC will
fix it there, too.
All Win-Machines are XP with Service Pack 2.
As i already said, i don't know whom to blame for that. On the one hand
it seems to be a specific Windows-problem, because other machines does
not show the same behaviour at the same time under nearly the same
conditions.
On the other hand nobody ever mentioned that with our old Win Server
2003 Fileserver, who is nowadays replaced by Samba.
Any Ideas?
My Linux-Box is a Suse Enterprise Server 9 with Samba Version
3.0.20b-3.4-SUSE.
The following logfiles extracts show the log.smbd grep(ed) for the
string "C_493____".
What i have done there, is first the try to delete the folder "!
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms" on the share with the
WinXP Explorer and then refreshed the Explorer's view.
The first extract shows the successful operation with a well working
client.
------------------------------------------------------------------------------------
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1005
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1005
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(fnum = -1) level=1004 call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms, expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1005
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____ (fnum = -1)
level=1004 call=5 total_data=0
creating new dirptr 256 for path ! Mitarbeiter-Pool/CA/C_493____,
expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms, expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = -1) level=1004
call=5 total_data=0
rmdir ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms
kernel_check_notify: kernel change notify on !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt fd[0]=30 (signals_received=1)
kernel change notify on ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(ntflags=0x3 flags=0x1e) fd=30
call_nt_transact_notify_change: notify change called on directory
name = ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV, expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1006
call=5 total_data=0
kernel change notify on !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (ntflags=0x17 flags=0x3e)
fd=29
call_nt_transact_notify_change: notify change called on directory
name = ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV
rmdir_internals: couldn't remove directory !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms : Datei oder Verzeichnis
nicht gefunden
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV, expect_close = 1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1005
call=5 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = -1) level=1004
call=5 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____ (fnum = -1)
level=1004 call=5 total_data=0
creating new dirptr 256 for path ! Mitarbeiter-Pool/CA/C_493____,
expect_close = 1
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(fnum = -1) level=1004 call=5 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____ (fnum =
8572) level=1006 call=7 total_data=0
creating new dirptr 256 for path ! Mitarbeiter-Pool/CA/C_493____,
expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt) returning 0766
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(fnum = 8574) level=1004 call=7 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(fnum = 8574) level=1005 call=7 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt
(fnum = 8574) level=1004 call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning
0766
------------------------------------------------------------------------------------
The second extract is the try from a "infected" machine.
------------------------------------------------------------------------------------
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning 0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8631) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8631) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8631) level=1004
call=7 total_data=0
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8633) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8633) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8633) level=1004
call=7 total_data=0
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8635) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8635) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8635) level=1004
call=7 total_data=0
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8637) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8637) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8637) level=1004
call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms, expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8642) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8642) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum = 8642) level=1004
call=7 total_data=0
call_trans2qfilepathinfo ! Mitarbeiter-Pool/CA/C_493____ (fnum =
8645) level=1006 call=7 total_data=0
creating new dirptr 256 for path ! Mitarbeiter-Pool/CA/C_493____,
expect_close = 1
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms, expect_close = 1
call_trans2setfilepathinfo(8) !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/Alarms (fnum 8647)
info_level=1013 totdata=1
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8648) level=1006
call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV, expect_close = 1
kernel change notify on !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (ntflags=0x17 flags=0x3e)
fd=34
call_nt_transact_notify_change: notify change called on directory
name = ! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8651) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8651) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8651) level=1004
call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8655) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8655) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8655) level=1004
call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8659) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8659) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8659) level=1004
call=7 total_data=0
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV, expect_close = 1
unix_mode(! Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV) returning
0766
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8662) level=1004
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8662) level=1005
call=7 total_data=0
call_trans2qfilepathinfo !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt/SP_CSV (fnum = 8662) level=1004
call=7 total_data=0
creating new dirptr 256 for path ! Mitarbeiter-Pool/CA/C_493____,
expect_close = 1
creating new dirptr 256 for path !
Mitarbeiter-Pool/CA/C_493____/00_Gesamt, expect_close = 1
------------------------------------------------------------------------------------
Thanks for every hint, Björn
More information about the samba
mailing list