Re: full dumps not getting timestamp

2009-12-03 Thread flowers
It took some time to figure out, but it wasn't a configuration issue.
At least, not on my part - it turns out that the j printf/etc length
is used in 40 places in the code.  This is a fairly recent introduction
to the c library, and is not supported under Solaris 8 (it is under
Solaris 10).  gcc 4.4.0 recognizes it, though, so doesn't complain.

Unfortunately, the library specifies If a length modifier appears with
any conversion specifier other than as specified above, the behavior is
undefined.  In this case, writing with it resulted in 0 being written,
and reading with it failed.  So it was very annoying to track down.

Changing all the j lengths to ll (and recompiling) solved the problem.

This is likely an issue for any machine whose libc does not support the
j length.


Re: full dumps not getting timestamp

2009-12-03 Thread Dustin J. Mitchell
On Thu, Dec 3, 2009 at 12:07 PM,  flow...@hagsc.org wrote:
 This is likely an issue for any machine whose libc does not support the
 j length.

We use the formatting functionality provided by glib, which promises
to support 'j'.  It does this by testing the implementation in the C
library, and replacing it with a bundled implementation if the C
library falls short.  However, especially older versions of glib seem
to have trouble with these tests, and incorrectly use the C library's
functions.

The trouble with %ll is, of course, that long long does not mean
anything in particular across multiple platforms.

What version of glib are you using?  Can you verify whether it's using
the bundled formatting library (basically, whether HAVE_GOOD_PRINTF is
defined - see gprintfint.h)

Dustin

-- 
Open Source Storage Engineer
http://www.zmanda.com


Re: full dumps not getting timestamp

2009-12-03 Thread flowers
Ah, I'd wondered if glib did that (it looked like it passed through to
libc for all the printf functions when I checked the code).  I'm using
2.8.1, and config.h in the source directory has

/* #undef HAVE_GOOD_PRINTF */

which would seem to imply it's using the system printf, as you'd
suggested.  I suppose I could toggle that and recompile glib to fix the
problem as well.

As for the ll substitutions, I wasn't saying they should be generally
used, merely that they fixed the problem for me.


Re: full dumps not getting timestamp

2009-12-03 Thread Dustin J. Mitchell
On Thu, Dec 3, 2009 at 1:01 PM,  flow...@hagsc.org wrote:
 /* #undef HAVE_GOOD_PRINTF */

 which would seem to imply it's using the system printf, as you'd
 suggested.  I suppose I could toggle that and recompile glib to fix the
 problem as well.

No, that means it's using the bundled printf.  That doesn't make a lot of sense.

(I referred back to a conversation I had with John Hein about a
similar problem on FreeBSD)

glib specifically provides a C99-compliant printf implementation, via
gnulib.  However, in glib/gnulib/printf-parse.c, I see:

#ifdef HAVE_INTMAX_T
  else if (*cp == 'j')
{   /* ... */
}
#endif

so perhaps that conditional is at fault?  Can you check the same
config.h for HAVE_INTMAX_T?  Do the references to the intmax_t type in
Amanda cause build errors?

Dustin

-- 
Open Source Storage Engineer
http://www.zmanda.com


Re: full dumps not getting timestamp

2009-12-03 Thread flowers
No, HAVE_INTMAX_T is defined, and caused no issues while building amanda.


Re: full dumps not getting timestamp

2009-12-03 Thread flowers
Ah, mistake on my part - this is indeed an old library, and was compiled
on an earlier machine running Solaris 7, which I no longer have access to.
It's quite possible the config.h created at that point was different
from what I'm seeing now.

Is there any way to pry configuration information out of the installed
library?  It's certainly not obvious to me.


Re: full dumps not getting timestamp

2009-12-03 Thread Dustin J. Mitchell
On Thu, Dec 3, 2009 at 2:29 PM,  flow...@hagsc.org wrote:
 Ah, mistake on my part - this is indeed an old library, and was compiled
 on an earlier machine running Solaris 7, which I no longer have access to.
 It's quite possible the config.h created at that point was different
 from what I'm seeing now.

 Is there any way to pry configuration information out of the installed
 library?  It's certainly not obvious to me.

I don't think so - the gprintfint.h header isn't installed - the
g_*printf functions are real library functions, not macros.

It sounds like you have a working solution, but the more, ahem,
recommended solution would be to rebuild glib for the current
architecture :)

Thanks for chasing this down!

Dustin

-- 
Open Source Storage Engineer
http://www.zmanda.com


Re: full dumps not getting timestamp

2009-12-03 Thread flowers
And, having tested with a recompiled 2.8.1, and with 2.22.3, this was
exactly the problem.  Thanks for the help in tracking it down!


Re: full dumps not getting timestamp

2009-12-01 Thread Jean-Louis Martineau

Do the backup succeeded? It looks it failed.

flow...@hagsc.org wrote:

I'm running a fresh install of amanda 2.6.1pl1 (I recently upgraded to
p2 and experienced the same problem).  When performing full dumps, the
curinfo/machine/disk/info files are getting updated (they have proper
ownership), but the stats: line for level 0 is mostly filled with 0's.

version: 0
command: 0
full-rate: 13929.010897 13776.895360
full-comp:
incr-rate:
incr-comp:
stats: 0 0 0 0 -1 31 GSC_FULL12
last_level: -1 -1
//

This is after amanda has finished its run.  As you can see, it was dumped
to tape, and has the proper tape label and file number on the tape.
But it's missing the timestamp and size of dump information.

I'm kind of at a loss as to what I've done wrong.  Previously, I've
been using a modified version of 2.4.1, which has worked fine.  For the
new install, I replaced both clients and servers with the new software,
and decided not to copy over the old database, instead starting fresh
(I needed to do a full set of dumps anyway).  It appears to work in all
other ways, but the lack of proper info in the info files prevents the
usual cycle (I can't do incrementals, since the full doesn't have a time).

Any ideas?
  




Re: full dumps not getting timestamp

2009-12-01 Thread flowers


full dumps not getting timestamp

2009-11-30 Thread flowers
I'm running a fresh install of amanda 2.6.1pl1 (I recently upgraded to
p2 and experienced the same problem).  When performing full dumps, the
curinfo/machine/disk/info files are getting updated (they have proper
ownership), but the stats: line for level 0 is mostly filled with 0's.

version: 0
command: 0
full-rate: 13929.010897 13776.895360
full-comp:
incr-rate:
incr-comp:
stats: 0 0 0 0 -1 31 GSC_FULL12
last_level: -1 -1
//

This is after amanda has finished its run.  As you can see, it was dumped
to tape, and has the proper tape label and file number on the tape.
But it's missing the timestamp and size of dump information.

I'm kind of at a loss as to what I've done wrong.  Previously, I've
been using a modified version of 2.4.1, which has worked fine.  For the
new install, I replaced both clients and servers with the new software,
and decided not to copy over the old database, instead starting fresh
(I needed to do a full set of dumps anyway).  It appears to work in all
other ways, but the lack of proper info in the info files prevents the
usual cycle (I can't do incrementals, since the full doesn't have a time).

Any ideas?