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" <[email protected]> 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.
>
> Thanks.
>
> 在 2013-2-8,下午11:01,Cryptographrix <[email protected]> 写道:
>
> 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" <[email protected]> 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 <[email protected]>
>> 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:
>>
>> http://www.informit.com/guides/content.aspx?g=java&seqNum=226
>>
>>
>>
>>
>> On Thu, Feb 7, 2013 at 11:52 PM, Liu Haifeng <[email protected]>wrote:
>>
>>> Hi
>>>
>>> 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
>>> Java.io.FileInputStream.readBytes.
>>>
>>> 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****
>>> Cpus_allowed:  00000000,00000000,00000000,00000000,00000000,00000000
>>> ,ffffffff,ffffffff****
>>> 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