I have script using Coro, Coro::LWP and LWP::UserAgent. I make an array of requests and run them by Coro's async {}. Then i use results from them and save to file. Script runs for hours or sometimes for minutes and then freezes. I've made a strace lookup to se what is it doing. There's a bunch of actions but after saving results there was this actions before the freeze:
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1211417888, 0}, {1211354002, 168413065}) = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
restart_syscall(<... resuming interrupted call ...>) = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
restart_syscall(<... resuming interrupted call ...>
Is there something strange of making sense of freezes?
Crossposted at PerlMonks.
Resolved: it was a strange usleep with very big ammount of seconds (like for 4000 days).