Re: mkisofs infinite loop (was: Re: problems with growisoft)
Patrick Ohly <[EMAIL PROTECTED]> wrote: > - -R is important to trigger the problem > > A debugger shows that it gets stuck in multi.c/check_rr_dates(): > it reads and parses the same extention block infinitely because > cont_extent (set by a CE entry in the original block) is not cleared. > > A solution is to to clear those variables, just as it is done after > readsecs() in check_rr_relocation(): > > *** multi.c Sat May 15 18:59:40 2004 > --- multi.c.fixed Sun Feb 6 17:42:18 2005 > *** > *** 601,614 > --- 601,615 > * Continue to scan the extension record. > * Note that this has not been tested yet, but > it is > * definitely more correct that calling > parse_rr() > * as done in Eric's old code. > */ > pnt = §or[cont_offset]; > len = cont_size; > + cont_extent = cont_offset = cont_size = 0; > } > } Looks reasonable. Jörg -- EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin [EMAIL PROTECTED](uni) [EMAIL PROTECTED](work) Blog: http://schily.blogspot.com/ URL: http://www.fokus.fraunhofer.de/usr/schilling ftp://ftp.berlios.de/pub/schily -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
mkisofs infinite loop (was: Re: problems with growisoft)
On Thu, 2004-11-04 at 15:21 +0100, Paolo Nason wrote: > Now I can reproduce the problem using that single file. > Here is the name: > $ls /tmp/nason/.nautilus/ > metafiles > $ls /tmp/nason/.nautilus/metafiles/ > file:%2F%2F%2Fmnt%2Fcdrom%2Fbackup-2004-10-01-08%253A35%2Fusr%2Flocal%2Fhome%2Fnason%2Fc%252B%252B.xml > > Now I do: > growisofs -Z /dev/hdd -root backup1 -R -D \ > -graft-points /tmp/nason/.nautilus=/tmp/nason/.nautilus > > which works, and then > growisofs -M /dev/hdd -root backup2 -old-root backup1 -R -D \ > -graft-points /tmp/nason/.nautilus=/tmp/nason/.nautilus For various reasons I didn't look into this earlier. Sorry! Anyway, let's see: - the problem still occurs with mkisofs from cdrtools 2.01.01 - it has nothing to do with using -root or -old-root (not really surprising, as -root is just a shortcut for more elaborate graft points and -old-root uses the same code as the normal multisession writing); these commands also cause mkisofs to lock up: mkisofs -R -o /tmp/first.iso nason/.nautilus mkisofs -R -o /tmp/second.iso -C 0,6 -M /tmp/first.iso nason/.nautilus - -R is important to trigger the problem A debugger shows that it gets stuck in multi.c/check_rr_dates(): it reads and parses the same extention block infinitely because cont_extent (set by a CE entry in the original block) is not cleared. A solution is to to clear those variables, just as it is done after readsecs() in check_rr_relocation(): *** multi.c Sat May 15 18:59:40 2004 --- multi.c.fixed Sun Feb 6 17:42:18 2005 *** *** 601,614 --- 601,615 * Continue to scan the extension record. * Note that this has not been tested yet, but it is * definitely more correct that calling parse_rr() * as done in Eric's old code. */ pnt = §or[cont_offset]; len = cont_size; + cont_extent = cont_offset = cont_size = 0; } } /* * If we have the same fundamental file type, then it is clearly safe * to reuse the TRANS.TBL entry. */ Joerg, if you agree with this patch, can you apply it, please? I have tested that the modified binary no longer runs into the infinite loop and I have used it for an incremental backup which went fine. -- Bye, Patrick Ohly -- [EMAIL PROTECTED] [EMAIL PROTECTED] (MakeCD related mails) http://home.pages.de/~ohly/ http://makecd.core.de/ (MakeCD home page) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: problems with growisoft
Patrick Ohly <[EMAIL PROTECTED]> wrote: > I investigated a similar problem (infinite loop RR reading > code) in in mkisofs 2.01a23 and Joerg included the fix in > 2.01a24. You might want to check whether your version of > the mkisofs sources contains that fix (or simply try it > with the official mkisofs source). Mkisofs is still full of bugs introduced by Eriy Youngdale & partners many years ago. I am still constantly fixing old bugs and somethimes believe that it may have been better to write a new mkisofs from scratch instead of maintaining the old source. It seems that the tar file send out today causes a hang on the latest source. I did not yet have the time to investigate on the problem. Jörg -- EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin [EMAIL PROTECTED](uni) If you don't have iso-8859-1 [EMAIL PROTECTED](work) chars I am J"org Schilling URL: http://www.fokus.fraunhofer.de/usr/schilling ftp://ftp.berlios.de/pub/schily -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: problems with growisoft
On Thu, 2004-11-04 at 15:21, Paolo Nason wrote: > Following Andy suggestion I looked for an offending file; > running mkisofs with the debugger I found it. > mkisofs hangs in the routine check_rr_dates, when is processing > that file. > > It was a nautilus file with a very long name. Sorry for not replying earlier, I have been off the net for a while due to moving into a new home. I investigated a similar problem (infinite loop RR reading code) in in mkisofs 2.01a23 and Joerg included the fix in 2.01a24. You might want to check whether your version of the mkisofs sources contains that fix (or simply try it with the official mkisofs source). -- Bye, Patrick Ohly -- [EMAIL PROTECTED] [EMAIL PROTECTED] (MakeCD related mails) http://home.pages.de/~ohly/ http://makecd.core.de/ (MakeCD home page) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: problems with growisoft
Following Andy suggestion I looked for an offending file; running mkisofs with the debugger I found it. mkisofs hangs in the routine check_rr_dates, when is processing that file. It was a nautilus file with a very long name. I moved it into a directory by itself. Now I can reproduce the problem using that single file. Here is the name: $ls /tmp/nason/.nautilus/ metafiles $ls /tmp/nason/.nautilus/metafiles/ file:%2F%2F%2Fmnt%2Fcdrom%2Fbackup-2004-10-01-08%253A35%2Fusr%2Flocal%2Fhome%2Fnason%2Fc%252B%252B.xml Now I do: growisofs -Z /dev/hdd -root backup1 -R -D \ -graft-points /tmp/nason/.nautilus=/tmp/nason/.nautilus which works, and then growisofs -M /dev/hdd -root backup2 -old-root backup1 -R -D \ -graft-points /tmp/nason/.nautilus=/tmp/nason/.nautilus which hangs. If you want to try to reproduce the problem I attach a tar.gz file containing /tmp/nason/.nautilus/metafiles/* and /tmp/growisoprob which contains the two growisofs offending commands. -- Paolo Nason, INFN, sez. di Milano Universita' di Milano-Bicocca, Dip. di Fisica "G. Occhialini", Piazza della Scienza, 3 20126 Milano Phone: +39-02-64482541. Fax: +39-02-64482582. growisoprob.tar.gz Description: application/compressed-tar
Re: problems with growisoft
Andy Polyakov <[EMAIL PROTECTED]> wrote: > > #mkisofs -C 16,407824 -M /dev/hdd -root backup-2004-10-22-10:43 > > -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list > > /tmp/backup.exclude -graft-points home/nason=home/nason > > > > The program runs an infinite loop in multi.c:545, > >while (len >= 4) { > > It's pure mkisofs problem. In other words it has anything to do whether > or not you use ide-scsi, what is your kernel version nor which brand is > your recorder unit. It has everything to do with your home directory > structure. You can try narrow the problem by temporarily moving > subdirectories out of your home directory to identify which one causes > trouble, then step down that directory and apply same procedure > (temporarily move out subdirs elsewhere on same device)... A. Unless I did see the image that caused the problem, I am not willing to call this a mkisofs problem. Note that the OP did not use an official mkisofs version but a RedHat hack and it may be that the image is just broken. The problem with RR is that it is hard to add workarounds for any defect in ISO images that are going to be used to be continued with multi session. Jörg -- EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin [EMAIL PROTECTED](uni) If you don't have iso-8859-1 [EMAIL PROTECTED](work) chars I am J"org Schilling URL: http://www.fokus.fraunhofer.de/usr/schilling ftp://ftp.berlios.de/pub/schily -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: problems with growisoft
Now I try to burn a subsequent session in incremental mode: #growisofs -M /dev/hdd -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason output: Executing 'mkisofs -C 16,407824 -M /dev/fd/3 -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason | builtin_dd of=/dev/hdd obs=32k seek=25489' Rock Ridge signatures found At this point the dvd burner lights up for a while then stops. Nothing happens. Using top I can see that mkisofs is using all the cpu available. I have to kill the process. If I do the same with a small test directory, the same procedure works. With my home directory (800Mb) it hangs. I compiled mkisofs with a debug option, and ran under the debugger the command (is this right? I took it from the growisofs output, substituting /dev/fd/3 with /dev/hdd ): #mkisofs -C 16,407824 -M /dev/hdd -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason The program runs an infinite loop in multi.c:545, while (len >= 4) { It's pure mkisofs problem. In other words it has anything to do whether or not you use ide-scsi, what is your kernel version nor which brand is your recorder unit. It has everything to do with your home directory structure. You can try narrow the problem by temporarily moving subdirectories out of your home directory to identify which one causes trouble, then step down that directory and apply same procedure (temporarily move out subdirs elsewhere on same device)... A. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
problems with growisoft
I used to make incremental backups of my home directory using growisofs. At some point I started to have problems with it. The initial session is burned with: #growisofs -Z /dev/hdd -root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason 2>&1 | tee /tmp/backup.log output: WARNING: /dev/hdd already carries isofs! About to execute 'mkisofs -root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason | builtin_dd of=/dev/hdd obs=32k seek=0' /dev/hdd: "Current Write Speed" is 4.1x1385KBps. /dev/hdd: flushing cache /dev/hdd: stopping de-icing /dev/hdd: writing lead-out If I mount the dvd now, it has the backup on it under the directory backup-2004-10-22-10:36, as I expected. Now I try to burn a subsequent session in incremental mode: #growisofs -M /dev/hdd -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason output: Executing 'mkisofs -C 16,407824 -M /dev/fd/3 -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason | builtin_dd of=/dev/hdd obs=32k seek=25489' Rock Ridge signatures found At this point the dvd burner lights up for a while then stops. Nothing happens. Using top I can see that mkisofs is using all the cpu available. I have to kill the process. If I do the same with a small test directory, the same procedure works. With my home directory (800Mb) it hangs. I compiled mkisofs with a debug option, and ran under the debugger the command (is this right? I took it from the growisofs output, substituting /dev/fd/3 with /dev/hdd ): #mkisofs -C 16,407824 -M /dev/hdd -root backup-2004-10-22-10:43 -old-root backup-2004-10-22-10:36 -quiet -R -D -exclude-list /tmp/backup.exclude -graft-points home/nason=home/nason The program runs an infinite loop in multi.c:545, while (len >= 4) { I do not quite understand what the program is doing. If I use the old ide-scsi interface (with /dev/scd0 instead of /dev/hdd) I find the same problem. I appreciate suggestions; My setup: AMD Athlon(TM) XP 2600+, Fedora2, kernel-2.6.5-1.358 mkisofs-2.01.1-0.FC2.1 dvd+rw-tools-5.21.4.10.8-1.FC2.1 The dvd writer is an LG, identified as HL-DT-ST DVDRAM GSA-4082B, ATAPI CD/DVD-ROM drive Best regards, Paolo Nason -- Paolo Nason, INFN, sez. di Milano Universita' di Milano-Bicocca, Dip. di Fisica "G. Occhialini", Piazza della Scienza, 3 20126 Milano Phone: +39-02-64482541. Fax: +39-02-64482582. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]