Date: Sun, 16 Mar 2003 15:32:23 -0500 From: parv <parv_fm@emailgroups.net> To: Thomas David Rivers <rivers@dignus.com> Cc: pirat@access.inet.co.th, stable@FreeBSD.ORG, doc@FreeBSD.ORG Subject: Re: uuencode takes very long time Message-ID: <20030316203223.GA34213@moo.holy.cow> In-Reply-To: <200303161153.h2GBrk620041@lakes.dignus.com> References: <20030316113452.GA309@thai-aec.org> <200303161153.h2GBrk620041@lakes.dignus.com>
next in thread | previous in thread | raw e-mail | index | archive | help
in message <200303161153.h2GBrk620041@lakes.dignus.com>, wrote
Thomas David Rivers thusly...
>
> pirat <pirat@access.inet.co.th> wrote:
> > unfortunately, i had been stuck at a step of uuencoding. it
> > took a tremendious long time. i was waiting for 18 hours for
> > nothing.
> >
> > uuencode my-pr.tar.gz > my-pr.uue
...
> you see, when you had "uuencode my-pr.tar.gz", you were not
> trying to uuencode the file "my-pr.tar.gz" - that parameter
> provides the name to use when uudecoding (on the "other side", as
> it were.)
>
> Thus, the uuencode encode command was waiting for 18 hours trying
> to read something from stdin...
>
> There are several ways to handle this:
>
> cat my-pr.tar.gz | uuencode my-pr.tar.gz
...
> uuencode my-pr.tar.gz my-pr.tar.gz
Are you mad, man? It is certainly possible that in the 2d case,
encoded file & the original would be corrupted/incomplete due to
race conditions. In case of a (very) large file, the same thing
would happen in the 1st case too.
It is much safer to use a temporary/other name for a file to store
the (encoded) output.
Mind you w/o -o option uuencode sends output to stdout (from
uuencode(1)), which is what OP was doing. I tried the -o option on
a small (3 kB) file...
uuencode -o p.uue p
...the process hanged like above. I also tried redirecting the
output of uuencode, process hanged. Just like OP.
Another thing, after first run of...
uuencode p
...encoded output was presented on stdout/err. Subsequent runs
showed only "begin 600 p" & hanged; had to press C-c. Below is the
bottom part of parsed ktrace output by kdump...
34748 uuencode NAMI "/etc/malloc.conf"
34748 uuencode RET readlink -1 errno 2 No such file or directory
34748 uuencode CALL mmap(0,4096,3,4098,-1,0,0,0)
34748 uuencode RET mmap 672141312/0x28101000
34748 uuencode CALL break(134529024)
34748 uuencode RET break 0
34748 uuencode CALL break(134533120)
34748 uuencode RET break 0
34748 uuencode CALL ioctl(1,TIOCGETA,-1077939208)
34748 uuencode RET ioctl 0
34748 uuencode CALL write(1,134529024,12)
34748 uuencode GIO fd 1 wrote 12 bytes
"begin 600 p
"
34748 uuencode RET write 12/0xc
34748 uuencode CALL fstat(0,-1077938668)
34748 uuencode RET fstat 0
34748 uuencode CALL break(134537216)
34748 uuencode RET break 0
34748 uuencode CALL ioctl(0,TIOCGETA,-1077938616)
34748 uuencode RET ioctl 0
34748 uuencode CALL read(0,134533120,4096)
34748 uuencode PSIG SIGINT SIG_DFL
My Freebsd version is 4.7-Release-p6; interactive shell was bash2
I suppose OP should file a pr.
- parv
--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030316203223.GA34213>
