Radmind / radmind

A suite of Unix command-line tools and a server designed to remotely administer the file systems of multiple Unix machines.
Other
22 stars 15 forks source link

Can't replace dir with symlink #153

Closed pdarragh closed 8 years ago

pdarragh commented 16 years ago

This may be related to bug 1816150.

We have two transcripts relating to HP frameworks. The first has these lines:

d ./Library/Printers/hp/Frameworks/hpImaging.framework 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/hpImaging 0775 0 80 1109985327 127112 gNMLIfQNPsRANx2jyfxzjw5Ea3g= d ./Library/Printers/hp/Frameworks/hpImaging.framework/Resources 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/Resources/hpImaging.rsrc 0664 0 80 1108480719 2878 RkvqOV2Ayq2kJnspEr3RTr1DD74= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Resources/Info.plist 0664 0 80 1108480719 946 76cvsXWU7FazkPXtWFMHsBtPlNM= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Resources/version.plist 0664 0 80 1111983627 470 3PVh2HERD04v4gzzUrTXN0dXviQ= d ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions 0775 0 80 d ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C/hpImaging 0775 0 80 1109985327 127112 gNMLIfQNPsRANx2jyfxzjw5Ea3g= d ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C/Resources 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C/Resources/hpImaging.rsrc 0664 0 80 1108480719 2878 RkvqOV2Ayq2kJnspEr3RTr1DD74= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C/Resources/Info.plist 0664 0 80 1108480719 946 76cvsXWU7FazkPXtWFMHsBtPlNM= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/C/Resources/version.plist 0664 0 80 1111983627 470 3PVh2HERD04v4gzzUrTXN0dXviQ= d ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/hpImaging 0775 0 80 1109985327 127112 gNMLIfQNPsRANx2jyfxzjw5Ea3g= d ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/Resources 0775 0 80 f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/Resources/hpImaging.rsrc 0664 0 80 1108480719 2878 RkvqOV2Ayq2kJnspEr3RTr1DD74= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/Resources/Info.plist 0664 0 80 1108480719 946 76cvsXWU7FazkPXtWFMHsBtPlNM= f ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/Resources/version.plist 0664 0 80 1111983627 470 3PVh2HERD04v4gzzUrTXN0dXviQ=

After installing an updated printer driver, I get the following relevant lines:

As you can see, the directory ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current (and its contents) were replaced by a link to ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/E. When I add the new transcript to the loadset, make an applicable transcript, and try to apply it, I get the following error:

./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current: Directory not empty

Here are the lines from the applicable transcript: mac/drivers/HPLaserJet4515Driver.T: <lines removed here>

I'm not sure if the problem is in the initial run of fsdiff, in the second run wherein it created the applicable transcript, or in the lapply step. Let me know if you need any more detail or if you want me to try anything.

Original comment by: slaunchaman

pdarragh commented 16 years ago

Logged In: YES user_id=1298350 Originator: NO

I have no problem replacing a directory with a symlink:

bash-3.2# pwd /usr/local bash-3.2# mkdir -p kiska/x/y/z
bash-3.2# touch kiska/a kiska/x/a kiska/x/y/a kiska/x/y/z/a bash-3.2# cd / bash-3.2# fsdiff -A ./usr/local linktest.T: l ./usr/local/kiska /usr/local/muishka

This just looks like the contents of ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current (as a directory) are in another transcript, possibly your base loadset. What does:

twhich -a ./Library/Printers/hp/Frameworks/hpImaging.framework/Versions/Current/hpImaging

tell you? Also try twhich -r on the same path.

Original comment by: fitterhappier

pdarragh commented 16 years ago

Logged In: YES user_id=2030333 Originator: YES

Yes, the directory is in a previous transcript.

Original comment by: slaunchaman

pdarragh commented 16 years ago

Logged In: YES user_id=1298350 Originator: NO

I didn't ask you to run twhich on the directory.

Original comment by: fitterhappier

pdarragh commented 16 years ago

Logged In: YES user_id=1298350 Originator: NO

I haven't seen any additional information about this bug, so at this point I'm assuming it was a loadset problem, not a bug in the code. I've set the status to Pending, which will automatically close it unless you respond with more information.

Original comment by: fitterhappier

pdarragh commented 16 years ago

Original comment by: fitterhappier

pdarragh commented 16 years ago

Logged In: YES user_id=2030333 Originator: YES

I've tried, unsuccessfully, to reproduce the bug, so feel free to close it.

Original comment by: slaunchaman

pdarragh commented 16 years ago

Original comment by: slaunchaman

pdarragh commented 15 years ago

Original comment by: fitterhappier