Linode Forum
Linode Community Forums
 FAQFAQ    SearchSearch    MembersMembers      Register Register 
 LoginLogin [ Anonymous ] 
Post new topic  Reply to topic
Author Message
 Post subject:
PostPosted: Fri Jan 14, 2005 2:34 pm 
Offline
Senior Member

Joined: Sun Dec 19, 2004 6:46 pm
Posts: 58
Thanks, really appreciate your effort in trying to solve this tricky bug.

My linode just crashed again (powered off state) minutes ago (still on the older 2.4.28 kernel).

This time, the only activity was my editing a text file using vim within an ssh session. I'm guessing the hourly cronjob kicked off while I was typing.

Kinda interesting how the crash sometimes takes a lot of effort+traffic and at other times, seems to take very little effort and minimal traffic.

I'm really hoping a solution is found within a few days--I'm expecting to go live early next week.

I'll reboot with the new 2.4.29-rc1 kernel this evening even though it doesn't fix this. Seems there are other worthwhile goodies in it.

Thanks again.

ps

I just wish I had been editing multiple equivs files somewhere other than within /tmp at the time... :(


Top
   
 Post subject: FIXED
PostPosted: Tue Jan 18, 2005 6:03 pm 
Offline
Linode Staff
User avatar

Joined: Tue Apr 15, 2003 6:24 pm
Posts: 3090
Website: http://www.linode.com/
Location: Galloway, NJ
Looks like Jeff found the problem:

Quote:
It turns out that caker's crashes were being caused by the lack of SA_NODEFER
in the SIGSEGV handler registration.

I know I fixed this, and I have no idea where the fix went. Do you have any
clue what happened to it?

Patch below...

Jeff

Index: 2.6.10/arch/um/kernel/process.c
===================================================================
--- 2.6.10.orig/arch/um/kernel/process.c 2005-01-17 12:27:47.000000000 -0500
+++ 2.6.10/arch/um/kernel/process.c 2005-01-18 13:55:28.000000000 -0500
@@ -60,7 +60,10 @@
{
int flags = altstack ? SA_ONSTACK : 0;

- set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags,
+ /* SIGSEGV needs to be SA_NODEFER because segfaults can happen while
+ * the segfault handler is on the stack.
+ */
+ set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags | SA_NODEFER,
SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags,
SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);


This problem exists in both 2.4 and 2.6 UML kernels. I'll try to compile new kernels this evening.

-Chris


Top
   
 Post subject:
PostPosted: Tue Jan 18, 2005 9:42 pm 
Offline
Senior Member

Joined: Sun Dec 19, 2004 6:46 pm
Posts: 58
Great work! Saw you chatting with Jeff online about this issue today. Thanks for all the hard work in helping track this down.

Lookin forward to trying the new kernel.

Thanks again.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
RSS

Powered by phpBB® Forum Software © phpBB Group