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