bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] [GNU tar 1.26] testsuite: 2 3 4 5 6 7 8 9 10 11 12 13 14 1


From: Kevin Brott
Subject: Re: [Bug-tar] [GNU tar 1.26] testsuite: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 30 31 34 36 38 39 40 42 43 44 45 46 47 48 49 51 52 53 54 55 57 58 59 60 61 62 64 65 66 67 68 69 71 72 73 74 79 80 81 82 83 84 85 87 90 91 92
Date: Thu, 18 Aug 2011 15:24:31 -0700

On Thu, Aug 18, 2011 at 11:25, Kevin Brott <address@hidden> wrote:

On Thu, Aug 18, 2011 at 10:28, Paul Eggert <address@hidden> wrote:
On 08/18/2011 09:46 AM, Kevin Brott wrote:
> Looks like tar isn't putting anything but zero-byte files into the archives

Thanks for the truss output.  I expect that it's this line
in src/create.c:1639

 else if (fstatat (parentfd, name, &st->stat, fstatat_flags) != 0)

Could you please run a debugger like GDB and step through that line
with an offending test case?  My suspicion is that fstatat is incorrectly
reporting that the file size is zero.  If so, can you explain how fstatat
is implemented on your system?  Is the code using the gnulib replacement,
or is fstatat implemented via system's C library, or what?

If you can't run a debugger, simply insert some printf statements
and print st->stat.st_size right after the successful fstatat.

Working on that debugging (using the system native tools because there's no working gcc for AIX 7.1 yet, and I'm not real familiar with adb or dbx) ... but doing some quick reading I suspect the issue stems from this:

"IBM AIX Version 7.1 Differences Guide" p7

Table 1-2 Short list of new library functions and system calls
System calls System calls
acessxat mknodat
chownxat openat
faccessat openxat
fchmodat readlinkat
fchownat renameat
fexecve stat64at
fstatat statx64at
futimens statxat
kopenat symlinkat
linkat ulinkat
mkdirat utimensat
mkfifoat

Which implies that fstatat wasn't available in earlier versions of AIX - but is now in 7.1 - which might end up just being a ./configure issue.  The official reference for it seems to be here: http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf2/statx.htm


AIX dbx is not being my friend today. I'm not finding the data I think you're looking for. And my c-foo is apparently weak-sauce, as putting a simple printf in create.c resulted in a src/tar that segfaults.

Any chance you could pass a short .diff this way for create.c that would result in the data dump you want?

--
# include <stddisclaimer.h>
/* Kevin  Brott <address@hidden> */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]