Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: print() function hang for long time

by dengguochen2003 (Initiate)
on Feb 19, 2013 at 09:35 UTC ( #1019495=note: print w/ replies, xml ) Need Help??


in reply to Re: print() function hang for long time
in thread print() function hang for long time

Hi, soonix, thank you for the comments.

Could you explain more? What output buffer do you mean? A buffer allocated by print() function?

Wired thing is that I monitor the execution of the script through a putty terminal and find it hangs there for a long while on 2/14 and leave it there. When I am back to it on 2/15 I find it still hangs. So I connect to the machine through the console. When I am in the console it resumes suddenly. The machine configuration is: IBM server -> InReach TTY -> terminal.


Comment on Re^2: print() function hang for long time
Re^3: print() function hang for long time
by vinoth.ree (Parson) on Feb 19, 2013 at 09:52 UTC
      Hi, vinoth.ree, soonix, thank you for pointing out the perl buffer. While this issue might not apply. I execute this script on various machines and it always goes ok. Only on this IBM machine with TTY console configured this problem shows up. So I am confused a lot. What is more, the script resumes when I login console and hit "return" next day.

        Perhaps just on this machine, perl is configured differently (e.g. bigger buffers), or the operating system might add another level of buffers ...

        "rc3" sounds like an init script, that would log to a file, wouldn't it? So that is usually buffered.

        Most probably your login triggers other activities that make your "rc3" print additional messages, thus filling the buffer and writing it out to disk, and then your tty can see it.

        (This section edited) In my previous msg I overlooked that you print also to a file handle and not only to STDOUT.
        Put the $|=1; statement right after the "hanging" print statement, better yet, put it after both print statements in line 12 and 15, and give it a try.

      Hi, soonix, thanks for monitoring this issue. Will have a try on your idea. One question is whether the buffer can stuck the process. From the time stamp the process hangs on the print() line for more than 20 hours because code line 23 is executed on 2/15 and gives below time stamp in log line 21(2013/02/15 12:33:27).

      2013/02/15 12:33:27 2013/02/14 16:50:12:Audit:event(2)::SYSTEM

      Hi, everybody, thank you for your attention on this problem. Finally I got the root cause. The reason is that the Linux kernel is configure to use console as standard output. And at the time when the perl is running the serial port is stuck. So the perl script hangs.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1019495]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2014-12-19 13:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (83 votes), past polls