On 21/11/2007, at 10:48 PM, 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

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

Did a little more digging (interested to learn more about vis/unvis - thanks, Otto - lots of learning on this list!) and it seems to be the last byte of the three that actually causes the hang - the \M^X part. If I have read vis(3) correctly, that is character 128 (M) + 24 (^X) = 152 (230 octal.)

The i-with-two-dots (\M-o = 128 + 111 = 0xEF) seems to be a red herring - which is why I could not reproduce the issue focussing on that character.

echo '\230' | unvis

... gives the xterm hang.

char_file.c:

#include <stdio.h>

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

        return 0;
}

# cc char_file.c -Wall -o char_file
# ./char_file
# mkdir testd3
# mv xx^?xx.txt testd3
# dump -0 -f test3.dmp testd3/
  DUMP: Dumping sub files/directories from /home
  DUMP: Dumping file/directory testd3/
  DUMP: Date of this level 0 dump: Sat Nov 24 10:39:03 2007
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rwd0h (/home) to test3.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: Sat Nov 24 10:39:04 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: Sat Nov 24 10:39:03 2007
  DUMP: Volume 1 completed at: Sat Nov 24 10:39:04 2007
  DUMP: Date this dump completed:  Sat Nov 24 10:39:04 2007
  DUMP: Average transfer rate: 0 KB/s
  DUMP: Closing test3.dmp
  DUMP: DUMP IS DONE
# restore -i -f test3.dmp
restore > verbose
verbose mode on
restore > cd testd3
restore > ls
./testd3:
31 ./ 2 ../ 30 xx***hangs here in xterm, OK on console or in Mac Terminal over ssh***?xx.txt

restore > quit

I'll have a look at dump/restore and using vis programatically. I haven't looked at the xterm angle (other codes e.g. octal 220 - also seem to cause the hang - so echo '\220' | unvis - has the same effect as 230. Just mentioning because someone will say 'Ah! That's because the fibble-bit is set!' and that will be the end of this thread.)

Thanks.

Reply via email to