-   Msieve (
-   -   Crash doing large post-processing job (

wombatman 2013-10-22 04:56

Crash doing large post-processing job
I'm working on post-processing of W_2_736 for NFS@Home. When reading the relations in, there's a host of error -1 and -11, but it ultimately reads in ~124.5M relations. It goes through all of the reduction steps and end up around 9M or so. The crash occurs at the full merge step with exception C00000374, which is a heap corruption error.

This is with MSieve 1.52 SVN 945, which I have used to factor other smaller numbers without issue. I watched the amount of RAM used, and it never rose above ~2.6GB out of 8 GB available, so it shouldn't be a memory issue. I'm currently using an SVN900 exe to see if that works. Any ideas what might be the cause of this crash?

wombatman 2013-10-22 16:17

Running with the SVN900 version didn't work either. Running again with SVN945 to try and get an idea of where the error occurs with VS.

jasonp 2013-10-22 17:29

2.6GB is suspiciously close to a 3GB virtual address limit, though if a memory allocation failed then you would be notified with a console message. A crash early in the filtering is a sign of a problem that others have reported on larger problems, which I haven't had the time to investigate.

wombatman 2013-10-22 17:32

Stupid question perhaps, but does that 3GB limit apply on 64-bit systems? MSieve correctly identifies that there are ~8GB RAM available for use.

wombatman 2013-10-22 19:42

The crash is related to ntdll.dll (according to the error given), which is apparently 32-bit in both the system32 and syswow64 directory on my Windows 7. Maybe that has something to do with it as well.

wombatman 2013-10-22 21:50

Last bit of information to add: I've tried SVN 923, 945, and 946. In each case, MSieve gets to 1.66GB of RAM being used during the full merge step when it errors out. This is independent of total RAM being used outside of MSieve (anywhere from 1 to 2.5GB).

henryzz 2013-10-23 07:28

If you are using a 32-bit dll then my understanding is that the binary must be 32-bit.
Your binary needs to be 64-bit.

jasonp 2013-10-23 11:30

Depending on the exact libraries that are linked in when the binary is built, MSVC can still give you a binary with 32-bit limitations even though the binary itself will use 64-bit instructions.

wombatman 2013-10-23 13:05

Yeah, biggest problem is there doesn't seem to be a 64-bit version of ntdll.dll on my system (neither system32 nor syswow64 has one), so it may be that MinGW-64 can only link to that 32-bit one. I'll keep investigating and also try a VS-compilation to see if that gives a proper 64-bit version.

wombatman 2013-10-23 22:02

1 Attachment(s)
Success! Compiling a 64-bit MSieve in Visual Studio has gotten me past the error point and allowed linear algebra to start. The file is attached. It was compiled on a Corei7 processor without ECM or CUDA. It's basically just for doing the -nc step.

swellman 2013-11-08 01:13

I've tried running your executable and hit a problem. An error box pops up

"The program can't start because pthreadVC2.dll is missing from your computer. Try reinstalling the program to fix this problem."

A search of my hard drive locates 3 copies of the missing dll, all 89.3 kB, all dated 8/20/2010. Once I copied one of these files to the msieve directory I got a new error message.

"The application was unable to start correctly (0xc000007b). Click OK to close the application."

Is this a registry issue? Any suggestions?

All times are UTC. The time now is 09:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.