#48993 log parsing fails if nanosecond logging is not enabled
Closed: wontfix 4 years ago by vashirov. Opened 7 years ago by lkrispen.

            log.info('Measuring convergence...')
>           measureConvergence(topology)

ds/dirsrvtests/tests/suites/replication/init-ruv_test.py:669:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ds/dirsrvtests/tests/suites/replication/init-ruv_test.py:441: in measureConvergence
    ReplTools.replConvReport(DEFAULT_SUFFIX, entries, master[1], replicas)
lib389/lib389/repltools.py:144: in replConvReport
    csnstr, csntime = _getCSNandTime(replica, op)
lib389/lib389/repltools.py:56: in _getCSNandTime
    vals = inst.ds_access_log.parse_line(op_line[0])
lib389/lib389/dirsrv_log.py:231: in parse_line
    action['datetime'] = self.parse_timestamp(action['timestamp'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <lib389.dirsrv_log.DirsrvAccessLog object at 0x7f2fc12155d0>, ts = '[22/Sep/2016:15:14:10 +0200]'<<<<<<<<<< this seems to be a normal timestamp from a log

    def parse_timestamp(self, ts):
        """Parse a logs timestamps and break it down into its individual parts
            @param ts - The timestamp string from a log
            @return - a "datetime" object
            """
        timedata = self.prog_timestamp.match(ts).groupdict()
        # Now, have to convert month to an int.
        dt_str = '{YEAR}-{MONTH}-{DAY} {HOUR}-{MINUTE}-{SECOND} {TZ}'.format(
            YEAR=timedata['year'],
            MONTH=MONTH_LOOKUP[timedata['month']],
            DAY=timedata['day'],
            HOUR=timedata['hour'],
            MINUTE=timedata['minute'],
            SECOND=timedata['second'],
            TZ=timedata['tz'],
            )
        dt = dt_parse(dt_str)
>       dt = dt.replace(microsecond=int(int(timedata['nanosecond']) / 1000))
E       ValueError: invalid literal for int() with base 10: ''

lib389/lib389/dirsrv_log.py:155: ValueError

Metadata Update from @lkrispen:
- Issue set to the milestone: lib389 1.0.3

7 years ago

Metadata Update from @vashirov:
- Custom field reviewstatus adjusted to None
- Issue close_status updated to: fixed
- Issue set to the milestone: None (was: lib389 1.0.3)
- Issue status updated to: Closed (was: Open)

4 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/2052

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

3 years ago

Login to comment on this ticket.

Metadata