klogd uses lseek on /dev/kmem. In case of an error this
would return (off_t)-1 but the return value is considered an
error if <0 which is inaccurate when large numbers are
treated as a signed int.
try upgrading to a later syslogd (such as 1.3.31-*, from
the errata). Does this solve the problem?
Upgrading to the latest available sysklogd solved this problem.
Unfortunately this update was not officially announced and is not in
the "new-kernel" updates directory.
The sysklogd update is actually in the regular 5.2 errata,
IIRC. We'll probably throw a link from one to the other.