Has anyone gotten D@H to run on a Linux 2.4.x machine?


Advanced search

Message boards : Unix/Linux : Has anyone gotten D@H to run on a Linux 2.4.x machine?

Sort
Author Message
Profile David Ball
Forum moderator
Volunteer tester
Avatar

Joined: Sep 18 06
Posts: 274
ID: 115
Credit: 1,634,401
RAC: 0
Message 2421 - Posted 7 Feb 2007 16:33:08 UTC

I never did get D@H to run on my RHEL3 machine. I was wondering if anyone had gotten D@H to get good results from a Linux 2.4.x kernel machine?

I did the "ulimit -s unlimited" fix and "ulimit -a" says the fix took but the program errors out after about 12 minutes although it's not on a segment violation as far as I can tell. It looks like it just realises it's messing up the calculations and errors out.

The machine has 2 GB of ECC memory and has run flawlessly as a web/mail/dns/usenet(text only usenet) server for 2 years. Current uptime is about 50 days and that reboot was because I changed some things and wanted to get a fresh boot to make sure they took.


____________
The views expressed are my own.
Facts are subject to memory error :-)
Have you read a good science fiction novel lately?

Profile Trog Dog
Volunteer tester
Avatar

Joined: Nov 14 06
Posts: 16
ID: 279
Credit: 145,805
RAC: 0
Message 2423 - Posted 7 Feb 2007 20:54:28 UTC

It runs fine on Damn Small Linux (kernel 2.4.26), for some reason this distro also doesn't need the ulimit fix either, even though the default stack limit is 8192.
____________

Profile David Ball
Forum moderator
Volunteer tester
Avatar

Joined: Sep 18 06
Posts: 274
ID: 115
Credit: 1,634,401
RAC: 0
Message 2438 - Posted 8 Feb 2007 22:40:19 UTC - in response to Message ID 2423 .

It runs fine on Damn Small Linux (kernel 2.4.26), for some reason this distro also doesn't need the ulimit fix either, even though the default stack limit is 8192.


Now that is really puzzling!

I gave up on RHEL3 and have even removed boinc from it, for security reasons, since it IS a server.

I'm really beginning to wonder about these Fortran compilers. From what I can tell by reading "Understanding the Linux Kernel" 2nd Edition, the expansion of the stack depends on the programs stack pointer being at, or a little below, the memory reference causing the page fault. I'm wondering if Fortran does something funny with the stack frame.

IIRC, someone in either the boinc message boards or developer/projects mailing lists said something about another project having corrupted data if interrupts occurred at the right point during Fortran execution. I was trying to find what was happening with the stack problem and found that running Fortran in the GBD debugger will cause it to get corrupted data errors. I'm beginning to think that the Fortran compiler is outputting code that references data BELOW the stack pointer in memory and it gets corrupted when the return address for the interrupt is pushed on the stack.

I'm also wondering if the reason D@H requires an unlimited stack on some Linux systems is because the stack behavior changes and when the page fault occurs, Linux just allocates the page without checking the stack pointer if it's set to "unlimited" and the page fault occurs in the address space that Linux reserves for the stack to grow into.

____________
The views expressed are my own.
Facts are subject to memory error :-)
Have you read a good science fiction novel lately?
Profile Andre Kerstens
Forum moderator
Project tester
Volunteer tester
Avatar

Joined: Sep 11 06
Posts: 749
ID: 1
Credit: 15,199
RAC: 0
Message 2439 - Posted 9 Feb 2007 3:45:43 UTC - in response to Message ID 2438 .

Some very good thinking there David! Certainly something we will look into. If you find out ny more info on this, please post.

Thanks
Andre

It runs fine on Damn Small Linux (kernel 2.4.26), for some reason this distro also doesn't need the ulimit fix either, even though the default stack limit is 8192.


Now that is really puzzling!

I gave up on RHEL3 and have even removed boinc from it, for security reasons, since it IS a server.

I'm really beginning to wonder about these Fortran compilers. From what I can tell by reading "Understanding the Linux Kernel" 2nd Edition, the expansion of the stack depends on the programs stack pointer being at, or a little below, the memory reference causing the page fault. I'm wondering if Fortran does something funny with the stack frame.

IIRC, someone in either the boinc message boards or developer/projects mailing lists said something about another project having corrupted data if interrupts occurred at the right point during Fortran execution. I was trying to find what was happening with the stack problem and found that running Fortran in the GBD debugger will cause it to get corrupted data errors. I'm beginning to think that the Fortran compiler is outputting code that references data BELOW the stack pointer in memory and it gets corrupted when the return address for the interrupt is pushed on the stack.

I'm also wondering if the reason D@H requires an unlimited stack on some Linux systems is because the stack behavior changes and when the page fault occurs, Linux just allocates the page without checking the stack pointer if it's set to "unlimited" and the page fault occurs in the address space that Linux reserves for the stack to grow into.


____________
D@H the greatest project in the world... a while from now!
Memo
Forum moderator
Project developer
Project tester

Joined: Sep 13 06
Posts: 88
ID: 14
Credit: 1,666,392
RAC: 0
Message 2442 - Posted 9 Feb 2007 5:07:38 UTC

My two active linux boxes are running slackware with 2.4.X

Profile Trog Dog
Volunteer tester
Avatar

Joined: Nov 14 06
Posts: 16
ID: 279
Credit: 145,805
RAC: 0
Message 2445 - Posted 9 Feb 2007 11:42:31 UTC - in response to Message ID 2438 .

It runs fine on Damn Small Linux (kernel 2.4.26), for some reason this distro also doesn't need the ulimit fix either, even though the default stack limit is 8192.


Now that is really puzzling!

I gave up on RHEL3 and have even removed boinc from it, for security reasons, since it IS a server.

I'm really beginning to wonder about these Fortran compilers. From what I can tell by reading "Understanding the Linux Kernel" 2nd Edition, the expansion of the stack depends on the programs stack pointer being at, or a little below, the memory reference causing the page fault. I'm wondering if Fortran does something funny with the stack frame.

IIRC, someone in either the boinc message boards or developer/projects mailing lists said something about another project having corrupted data if interrupts occurred at the right point during Fortran execution. I was trying to find what was happening with the stack problem and found that running Fortran in the GBD debugger will cause it to get corrupted data errors. I'm beginning to think that the Fortran compiler is outputting code that references data BELOW the stack pointer in memory and it gets corrupted when the return address for the interrupt is pushed on the stack.

I'm also wondering if the reason D@H requires an unlimited stack on some Linux systems is because the stack behavior changes and when the page fault occurs, Linux just allocates the page without checking the stack pointer if it's set to "unlimited" and the page fault occurs in the address space that Linux reserves for the stack to grow into.


It may also be worthwhile comparing with knoppix too. DSL is a knoppix derivative which is a debian derivative. My debian boxes with 8192 stack limit need the ulimit fix, yet dsl also with a 8192 stack limit don't.
____________

Message boards : Unix/Linux : Has anyone gotten D@H to run on a Linux 2.4.x machine?

Database Error
: The MySQL server is running with the --read-only option so it cannot execute this statement
array(3) {
  [0]=>
  array(7) {
    ["file"]=>
    string(47) "/boinc/projects/docking/html_v2/inc/db_conn.inc"
    ["line"]=>
    int(97)
    ["function"]=>
    string(8) "do_query"
    ["class"]=>
    string(6) "DbConn"
    ["object"]=>
    object(DbConn)#11 (2) {
      ["db_conn"]=>
      resource(72) of type (mysql link persistent)
      ["db_name"]=>
      string(7) "docking"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      &string(51) "update DBNAME.thread set views=views+1 where id=171"
    }
  }
  [1]=>
  array(7) {
    ["file"]=>
    string(48) "/boinc/projects/docking/html_v2/inc/forum_db.inc"
    ["line"]=>
    int(60)
    ["function"]=>
    string(6) "update"
    ["class"]=>
    string(6) "DbConn"
    ["object"]=>
    object(DbConn)#11 (2) {
      ["db_conn"]=>
      resource(72) of type (mysql link persistent)
      ["db_name"]=>
      string(7) "docking"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(3) {
      [0]=>
      object(BoincThread)#3 (16) {
        ["id"]=>
        string(3) "171"
        ["forum"]=>
        string(1) "6"
        ["owner"]=>
        string(3) "115"
        ["status"]=>
        string(1) "0"
        ["title"]=>
        string(54) "Has anyone gotten D@H to run on a Linux 2.4.x machine?"
        ["timestamp"]=>
        string(10) "1171021351"
        ["views"]=>
        string(4) "1293"
        ["replies"]=>
        string(1) "5"
        ["activity"]=>
        string(23) "1.7270967673940998e-124"
        ["sufferers"]=>
        string(1) "0"
        ["score"]=>
        string(1) "0"
        ["votes"]=>
        string(1) "0"
        ["create_time"]=>
        string(10) "1170865988"
        ["hidden"]=>
        string(1) "0"
        ["sticky"]=>
        string(1) "0"
        ["locked"]=>
        string(1) "0"
      }
      [1]=>
      &string(6) "thread"
      [2]=>
      &string(13) "views=views+1"
    }
  }
  [2]=>
  array(7) {
    ["file"]=>
    string(63) "/boinc/projects/docking/html_v2/user/community/forum/thread.php"
    ["line"]=>
    int(184)
    ["function"]=>
    string(6) "update"
    ["class"]=>
    string(11) "BoincThread"
    ["object"]=>
    object(BoincThread)#3 (16) {
      ["id"]=>
      string(3) "171"
      ["forum"]=>
      string(1) "6"
      ["owner"]=>
      string(3) "115"
      ["status"]=>
      string(1) "0"
      ["title"]=>
      string(54) "Has anyone gotten D@H to run on a Linux 2.4.x machine?"
      ["timestamp"]=>
      string(10) "1171021351"
      ["views"]=>
      string(4) "1293"
      ["replies"]=>
      string(1) "5"
      ["activity"]=>
      string(23) "1.7270967673940998e-124"
      ["sufferers"]=>
      string(1) "0"
      ["score"]=>
      string(1) "0"
      ["votes"]=>
      string(1) "0"
      ["create_time"]=>
      string(10) "1170865988"
      ["hidden"]=>
      string(1) "0"
      ["sticky"]=>
      string(1) "0"
      ["locked"]=>
      string(1) "0"
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      &string(13) "views=views+1"
    }
  }
}
query: update docking.thread set views=views+1 where id=171