[Top][All Lists]

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

Re: Please help me to resolve a tail related server fault

From: Cryptographrix
Subject: Re: Please help me to resolve a tail related server fault
Date: Sat, 9 Feb 2013 21:32:45 -0500

Ah wow, yeah I was really lost there too  - good to hear you got it resolved!

On Feb 9, 2013 9:02 PM, "Liu Haifeng" <address@hidden> wrote:
I got this resolved, it's a bug in my java code. I didn't close the error stream, which means tail's stderr was piped to the java program too. I did not consume any error output, and after a month the stderr buffer got full, that caused tail to block.


在 2013-2-8,下午11:01,Cryptographrix <address@hidden> 写道:

If it's happening when some type of log rotation rotates the log out, there is a good possibility that tail catches the EOF when log rotation kicks the process that created the file and tail dies.

I believe the retry feature of tail may not necessarily retry after what it sees as an EOF, and that would probably be intentional.

To test this, you can tail the file yourself when log rotation is going to run.  If you go back to shell, then you need to write a retry into the Java code you're writing to compensate.

It may very likely be that Oracle added STDIN limitations into Java with the latest releases as well.

On Feb 8, 2013 9:36 AM, "Liu Haifeng" <address@hidden> wrote:
We are developing our own tailer now, but I want to find out what happened with gnu tail or oracle java.

On Feb 8, 2013, at 10:03 PM, Cryptographrix <address@hidden> wrote:

I do not know what limitations STDIN has on it in java offhand, but it sounds like this is what you are trying to do:

On Thu, Feb 7, 2013 at 11:52 PM, Liu Haifeng <address@hidden> wrote:

I have a log transport agent written in java which creates a sub process that executing "tail -F a.log" to tail log file,and the output is piped to the main java process,thus I can read and transport log content using java.

This worked fine in the past 30 days,but now it seams the java process can't read any data. I checked java thread stack, it's blocked on

The log file I am tailing is rotated every one hour,and the fault happened at the moment the rotating script is supposed to run.

Currently I have no idea about this fault. Here following by some status of the tail process, not more as I don't have the root privilege.


#cat /proc/28195/status


Name:   tail
State:  S (sleeping)
SleepAVG:       78%
Tgid:   28195
Pid:    28195
PPid:   28143
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmPeak:     3828 kB
VmSize:     3828 kB
VmLck:         0 kB
VmHWM:       524 kB
VmRSS:       524 kB
VmData:      180 kB
VmStk:        88 kB
VmExe:        36 kB
VmLib:      1468 kB
VmPTE:        36 kB
StaBrk: 198b3000 kB
Brk:    198d4000 kB
StaStk: 7fff7679c1d0 kB
Threads:        1
SigQ:   0/32768
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000004
SigIgn: 0000000000000003
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
Mems_allowed:   00000000,00000001


#cat /proc/28195/stat
28195 (tail) S 28143 28138 27881 0 -14202496 141 0 1 0 10328 53939 0 0 18 0 1 0 214643641 3919872 131 18446744073709551615 1 1 0 0 0 0 4 3 0 18446744073709551615 0 0 17 2 0 0 1


#yum list|grep coreutils
coreutils.x86_64                           5.97-34.el5_8.1             installed
policycoreutils.x86_64                     1.33.12-14.8.el5            installed
policycoreutils-gui.x86_64                 1.33.12-14.8.el5            base
policycoreutils-newrole.x86_64             1.33.12-14.8.el5            base

reply via email to

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