homes bug - two different solutions

Michael Collin Nielsen michael at hum.aau.dk
Wed Jul 14 19:01:51 GMT 2004


Hi

I'm running samba-3.0.4 on a solaris 8 box and is investigating a setup 
where samba acts as a domain member in a windows 2000 domain with 
windows XP sp1 clients.

I have added AD policies to install printers  as the clients starts and 
I have added AD policies to redirect the users Desktop, Application Data 
and Documents to dubfolders of the homes share, eg Desktop -> 
\\server\homes\.Desktop

This all works nice and dandy... But sometimes access to the homes share 
fail, this seems quite random, but it seems to happen quite often when 
the PC is rebootet in between logins.

I have looked into the source, and can see from debug that I added to 
the code, that it seems that this could be a logics bug in the 
register_vuid function, but then again - It might be a logics error 40 
cm from my screen :-)

Here is what I this is hapening:
The computer is started and the guest user connects to samba and instals 
printers, my testuser then logs in, and register_vuid registers a homes 
share in his session and in the global service table. The user then logs 
off, and the computer is rebootet. After the reboot, the test user again 
connects to samba, register_vuid again tries to register a homes share, 
but now the service is already registered in the global service table, 
and therefore register_vuid does not register the homes share in the 
user session, and sets vuser->homes_snum = -1

How to solve:
I'm not familiar with the logics of this, and can't quite find the 
logics in how the homes share is related to the current user, but I 
guess one solution could be to check if a globally registred service 
with the same name exists (as it is now: 
lp_servicenumber(vuser->user.unix.name)), and if it does excist then use 
the id of that service in the vuser->homes_snum.
A different approach could be to register the service again, and rely on 
the underlaying functions to update the excisting service.

I dont know which is the better solution, so I've tested both, and can't 
really see any difference, but some of you good people probably know 
which is the better solution :-)

I have made two diffs against samba-3.0.4 source:
password-reuse-service.diff is the patch that reuses the servicenumber
password-update-service.diff is the patch that updates the service
They are available at: http://www.hum.aau.dk/~michael/samba3/

Hope you will take look at these :-)

Regards

-Michael

PS: I can reproduce the error this way:
I log in a my fresh test-user on a fresh mashine - Now folder 
redirection to the homes share is OK
I reboot windows, and while the computer reboots I delete the test-users 
roaming profile.
I then log in as the test-user again and now windows complains that 
we're offline.

-- 
    Michael Collin Nielsen  mailto:michael at hum.aau.dk
    M.Sc.E.E.               http://www.hum.auc.dk/~michael
    Sysadm in Faculty of Humanities, Aalborg University


More information about the samba-technical mailing list