Otto Moerbeek wrote:
On Wed, Nov 21, 2007 at 10:20:39PM +1300, Richard Toohey wrote:

On 21/11/2007, at 12:08 PM, Jeff Ross wrote:

Jeff Ross wrote:
Hi,

       "
 11609 restore  RET   write 27/0x1b
 11609 restore  CALL  write(0x2,0x80147000,0x34)
 11609 restore  GIO   fd 2 wrote 52 bytes
       "1834488 Document Scrap '\M-o\M^C\M^X Journal Entrie...'.shs
       "
On a console (not xterm) the file name appears to be
    Document Scrap 'C/ Journal Entrie...'.shs
(that's a lower case "i" with two dots over it.)
My original e-mail did get mangled a little.

The C/ above is really the lowercase i with two dots over it.

Jeff
I had a look out of curiosity (again) ... no great words of wisdom but might help ...

Doesn't *just* seem to be because of the i-with-two-dots above it (0xEF? I looked at http://unicode.org/charts/ and the Latin-1 page - you'll need a PDF viewer. The character is a LATIN SMALL LETTER I WITH DIAERESIS to give it the proper moniker ...)

Create char_file.c (yes, no prizes for this code.) You can achieve getting this filename without code, but might be easier to use the code than find the right character and paste it.

#include <stdio.h>

int main(void) {
        FILE *f;
        char fn[]="xxxxx.txt";
        fn[2]=0xEF;
        f=fopen(fn,"w");
        fputs("Something here",f);
        fclose(f);
        return 0;
}

Compile with ...
# cc -Wall -o char_file char_file.c

Execute with ...
# ./char_file

You should end up with a new file in your current directory:

xx?xx.txt (depending on your display, that question mark may appear as the i-with-two-dots.)

Do a dump:

# mkdir testd
# mv xx?xx.txt testd
# dump -0 -f testd.dmp testd/
  DUMP: Dumping sub files/directories from /home
  DUMP: Dumping file/directory testd/
  DUMP: Date of this level 0 dump: Thu Nov 22 10:59:25 2007
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rwd0h (/home) to testd.dmp
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 106 tape blocks on 0.00 tape(s).
  DUMP: Volume 1 started at: Thu Nov 22 10:59:25 2007
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: 74 tape blocks on 1 volume
  DUMP: Date of this level 0 dump: Thu Nov 22 10:59:25 2007
  DUMP: Volume 1 completed at: Thu Nov 22 10:59:25 2007
  DUMP: Date this dump completed:  Thu Nov 22 10:59:25 2007
  DUMP: Average transfer rate: 0 KB/s
  DUMP: Closing testd.dmp
  DUMP: DUMP IS DONE

Do a restore:

# restore -i -f testd.dmp
restore > cd testd
restore > verbose
verbose mode on
restore > ls
./testd:
25 ./          2 ../        24 xx?xx.txt

restore > quit

The copy/paste was via a Mac console - on X running on OpenBSD 4.2/i386 the i-with-two-dots appears correctly throughout.

I *know* your dump/restore process is a LOT more complicated than this - I'm trying to reproduce the error with the smallest amount of effort (don't fancy setting up a Windows box and compressing 12Gb, etc.!)

Guess the next thing might be getting a way smaller sample dump file that still shows the problem? Doesn't *seem* to be just the i character - so is it the spaces? The apostrophes? Combination of all three? The length of the filename? The Windows factor? Samba? Translation by something?

The (interactive) restore source code is in /usr/src/sbin/restore/interactive.c - so you could try adding some debug messages in there on a test box and run the file through it ...

Are you running 4.2 i386 (apologies if covered or obvious in your posting?)

Thanks.

The easiest way to reproduce I found so far is:

echo '\M-o\M^C\M^X' | unvis
It hangs my xterm. It does not hang a console.

I think dump should 'vis' the filenames it prints.

        -Otto

Thank you Richard and Otto!

Nick Bender suggested to me off list that the problem might not be with
restore but rather with terminal flow control.  I fired up screen,
turned flow control off, and restore did its thing with no problems
whatsoever.

So at least the workaround to the problem has been found.

Additionally, Otto's comment about the xterm and vis/unvis works that way here, too. The console does work, so I'll be using it for restores in the future. Speaking from my own gun-bullet-foot experience, when you need restore you need it _badly_ and the last thing you want to see is restore just...stop.

Jeff

Reply via email to