syncing problem on Solaris and *BSD systems, 0 lines in dlf (was: Re: sendmail syslog files ?)
Faruk Celik
farcel at yahoo.com
Wed Nov 7 17:10:28 CET 2001
Hi Joost,
I changed the ARCHUVE to ARCHIVE in
$(prefix)/etc/lire/defaults.local
(you know... U is close to I on the keyboard :] )
I finally achieved to get a report by following
the steps that you sent. Thank you.
I hope the bug that you find is not a "tanker bug" in
the movie Starship Troopers :)
Bye,
Faruk
--- Joost van Baal <joostvb at logreport.org> wrote:
> On Wed, Nov 07, 2001 at 04:55:13AM -0800, Faruk
> Celik wrote:
> >
> > --- Joost van Baal <joostvb at logreport.org> wrote:
> > > On Tue, Nov 06, 2001 at 10:54:46PM -0800, Faruk
> > > Celik wrote:
> > > >
> > > > I'm trying to analyze our Sendmail SMTP logs.
> > > > I'm using Sendmail on Solaris 2.7 and
> > > > lire-full-20011017.tar.gz.
> <snip>
> > > > and LIRE created an empty /tmp/report.txt and
> <snip>
> > "0 lines of information from the 37458 lines in
> the
> > log......"
> <snip>
> > > grep 'sendmail\[' /var/log/syslog | lr_run
> > > lr_log2report /tmp/error email sendmail \
> > > > /tmp/report.txt
> <snip>
> >
> > After I've read your mail I've changed my
> > $(prefix)/etc/lire/defaults.local like that:
> >
> > -------------My new defaults.local
> STARTED-----------
> > # $(prefix)/etc/lire/defaults.local - local
> settings
> > for Lire
> > # system on mymachine ;)
> > # to be sourced by $(prefix)/etc/lire/defaults
> > # automatically generated by lr_config(1) on Tue
> Nov
> > 6 16:48:45 EET 2001
> > # --------------------------------
> > # I take out the my machine related informations.
> > # --------------------------------
> >
> > KEEP=1
> > DEBUG=1
> > ARCHUVE=1
>
> Oops, that should be 'ARCHIVE'
> ^
>
> > LOGGING=stderr
> > DEFAULT_OUTPUT_FORMAT=txt
> > LR_TARGET_USER=sysadmin
> > LR_USERLEVEL=advanced
> > LR_MAX_MEMORY=40Megs
> > jobfiles_weekly=""
> > jobfiles_daily=""
> >
> > -------------My new defaults.local
> FINISHED-----------
> >
> > And I got a lot of debug_output to console. I
> attached
> > a file named "lire_shell_output.txt" to this mail.
>
> Thanks! This helps.
>
> <snip>
> > I'm not going to give up Joost ;-].
> > Because I liked your project.
>
> Well, thanks!
>
> > And I'm sure you know the absence of a
> > real/nice/detailed "sendmail log analyser" tool.
> >
> > (I checked Sendmail FAQ
> > http://www.sendmail.org/faq/section4.html#4.7 .
> > Most of them didn't give me number of rejected ,
> > successfull mails and they're producing so simple
> > reports.)
> <snip>
>
> Just sent the maintainer an email, thanks for the
> pointer.
>
>
>
> OK, the debug output features:
>
> email sendmail lr_tag-20011107134547-27784
> lr_log2xml info gonna run
> sendmail2dlf >
>
>
/$(prefix)/tmp/lr_log2xml.sendmail.lr_tag-20011107134547-27784.27797.dlf
>
> email all lr_tag-20011107134547-27784 sendmail2dlf
> info read 39194 lines,
> output 62197 lines
>
> email sendmail lr_tag-20011107134547-27784
> lr_log2xml info lr_db_store
> lr_tag-20011107134547-27784 dlflines 0
> succeeded
>
> email all lr_tag-20011107134547-27784 lr_dlf2xml
> info 'DLF contains 0
> records; start and end time are unavailable
>
> I guess we've hit a bug.
>
> The problem seems to be the generated dlf file,
>
(/$(prefix)/tmp/lr_log2xml.sendmail.lr_tag-20011107134547-27784.27797.dlf
> in your case ), is not synced to disk, before it's
> being opened again,
> to run
>
> LINES=`wc -l < $DLFFILE`
>
> (that's in the lr_dlf2xml code.)
>
> When I tested the script, I had to add some sync's.
> I made a mistake,
> however. The sync call is not portable.
>
> SunOS 5.7 fsync(3C)
>
> The fsync() function is different from
> sync(),
> which schedules disk I/O for all files but
> returns before
> the I/O completes. The fsync() function forces
> all outstand-
> ing data operations to synchronized file
> integrity comple-
> tion
>
> The GNU file utilities `sync' "ensures everything in
> memory is written
> to disk."
>
> The linux sync systemcall:
>
> According to the standard specification
> (e.g., SVID),
> sync() schedules the writes, but may
> return before the
> actual writing is done. However, since
> version 1.3.20
> Linux does actually wait.
>
> BSD-ish systems need fsync(2), like Solaris, to get
> guaranteed flush to
> disk. Unfortunately, there's no commandline
> interface on Solaris to
> call fsync. FreeBSD has got /usr/bin/fsync .
> OpenBSD has no commandline
> fsync. Perl doesn't offer an fsync interface. We
> really _need_ the
> sync, since what's done is:
>
> $TODLF $FLAGS > $DLFFILE
>
> LINES=`wc -l < $DLFFILE`
>
> lr_dlf2xml $SUPERSERVICE $REPORT_CFG $DLFFILE
>
> and lr_dlf2xml really needs a file to operate on.
>
> I don't think cludging with tee(1) will increase
> robustness.
>
> I need some thinking on this. I'll get back to it
> tomorrow. It surely
> is an interesting bug :)
>
>
> OK, there is a cludgy workaround:
>
> I used ${prefix} /usr/local/bin
>
> cochon at abramowitz:~% export
>
>
PATH=/usr/local/bin:/usr/local/libexec/lire:/usr/local/libexec/lire/email:/usr/bin:/bin
>
> cochon at abramowitz:~% grep 'sendmail\['
> /var/log/syslog | sendmail2dlf > \
> /tmp/sendmail.dlf
>
> cochon at abramowitz:~% grep 'sendmail\['
> /var/log/syslog | \
> lr_run sendmail2dlf > /tmp/sendmail.dlf
>
> cochon at abramowitz:~% lr_run lr_dlf2xml email
> /usr/local/etc/lire/email.cfg \
> /tmp/sendmail.dlf > /tmp/sendmail.xml
>
> cochon at abramowitz:~% lr_run lr_xml2ascii <
> /tmp/sendmail.xml > \
> /tmp/sendmail.report
>
> This will give you an ascii report.
>
> You'll hear about the sync problems. I'd very much
> like to get this bug
>
=== message truncated ===
> ATTACHMENT part 2 application/pgp-signature
__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com
--
To UNSUBSCRIBE, email to questions-request at logreport.org with a subject of
"unsubscribe". Trouble? Send an email with subject "help" to
questions-request at logreport.org
More information about the Questions
mailing list