Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

IVF 11.1.051 freezes during build

longden_loo
初学者
2,139 次查看
Has anyone else seen this problem on XP Pro?

My Visual Studio 2008 IDE freezes during mid-build for a multi-project solution. The freeze occurs sometime after processing a project that was missing a file needed to satisfy a "USE" statement. When the missing file is added to the project/source list, the restarted build completes successfully. I first observed this behavior in 046, and went to 051 to see if this corrected the problem, which it did not.

I don't believe I've seen this behavior in earlier versions (9.x - 11.0) where the build actually terminated with errors, rather than forcing me to do Build/Cancel. During the freeze, Task Manager shows fortcom is using 50% of the CPU (on a dual core).

I tried to search for this problem, but I didn't see if this was mentioned already ... the search terms would be pretty generic. The build log (after the cancel) does show a problem with the missing module file, but otherwise is lacking any reason for freezing, such as internal compiler error messages.
0 项奖励
16 回复数
longden_loo
初学者
2,139 次查看
As an update to this problem description, I found that once the build process freezes, I can see the fortcom process in Task Manager using CPU cycles. Now if I end the fortcom process from Task Manager, then the build process in the IDE continues to completion.

The final build log then shows the compilation for the offending project was aborted (the result of my Task Manager action) and the rest of the log is usual and unremarkable.

A co-worker, also on IVF 11.1 reported the same lock-up behavior when a project build thread compiled with major syntax errors resulting in a (562) catastrophic error in the log and the subsequent freezing of the build process, requiring a Build/Cancel in the IDE.

This seems to imply that selected major compilation errors that occur in a thread are somehow leaving the thread in some kind of loop state (ie, using CPU) and never gets to report back to the monitoring process.
0 项奖励
Steven_L_Intel1
2,139 次查看
This is not a symptom I am familiar with regarding the current compiler. Do you have a test case that reliably reproduces the problem? If so, would you please attach it? A ZIP of a project/solution would be best.
0 项奖励
longden_loo
初学者
2,139 次查看
Yes, a test case was an issue I was wrestling with yesterday but it seems that cobbling together something simple doesn't replicate the problem.

It almost seems like the problem is related to the size of the build task, since our proprietary code is made up of 19 projects in the solution with over a thousand source files. My problem occured in the middle of the build (project/thread #10), so possibly anything smaller won't do.

I would probably need to create a test solution with enough projects to force the simultaneous execution of multiple compile threads, which also means the compilations can't be trivial or they'll end too quickly.

Bottom line is that I think the creation of a test case will be difficult. We have a workaround, which is to force a build cancel, so I guess that'll have to do until someone else (preferably at Intel) runs into the problem. I was sort of hoping this was already known and that there would be comments about it, but I guess we're the first.

This same code has been built the same way since IVF 9.x - 11.0 without exhibiting the freeze which only started occuring in 11.1 (specifically 11.1.051, 11.1.046, 11.1.03?).
0 项奖励
DavidWhite
重要分销商 II
2,139 次查看
Quoting - longden_loo
Yes, a test case was an issue I was wrestling with yesterday but it seems that cobbling together something simple doesn't replicate the problem.

It almost seems like the problem is related to the size of the build task, since our proprietary code is made up of 19 projects in the solution with over a thousand source files. My problem occured in the middle of the build (project/thread #10), so possibly anything smaller won't do.

I would probably need to create a test solution with enough projects to force the simultaneous execution of multiple compile threads, which also means the compilations can't be trivial or they'll end too quickly.

Bottom line is that I think the creation of a test case will be difficult. We have a workaround, which is to force a build cancel, so I guess that'll have to do until someone else (preferably at Intel) runs into the problem. I was sort of hoping this was already known and that there would be comments about it, but I guess we're the first.

This same code has been built the same way since IVF 9.x - 11.0 without exhibiting the freeze which only started occuring in 11.1 (specifically 11.1.051, 11.1.046, 11.1.03?).

Jsut a long shot here -- is the problem possible due to the order of compilation with multiple threads? Do you get the same problem if the compilation is forced to run sequentially in a single thread (painful).
0 项奖励
longden_loo
初学者
2,139 次查看
Ahh, now that's a question we had all been asking ... whether there was a way to turn off or bypass the multi-threaded processing.

So how do we do that?
0 项奖励
DavidWhite
重要分销商 II
2,139 次查看
Quoting - longden_loo
Ahh, now that's a question we had all been asking ... whether there was a way to turn off or bypass the multi-threaded processing.

So how do we do that?
From VS2005 (not sure if it differs with version)

Tools / Options / Projects and Solutions / Build and Run

Can set maximum number of parallel project builds

Regards,


David
0 项奖励
longden_loo
初学者
2,139 次查看
Thanks for that tip. I was able to set the number of processes to "1" so the build proceeded sequentially.

However, the build still locks up at the same point on the same project unless I add the missing module file back into the project's source files list.
0 项奖励
Steven_L_Intel1
2,139 次查看
Does the INCLUDE path include any network shares?
0 项奖励
longden_loo
初学者
2,139 次查看
Does the INCLUDE path include any network shares?

Not that I know of.

The INCLUDE path in the Windows environment only had this:
C:Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1include

... I removed the INCLUDE variable altogether (since I'm on VS2008) with no effect (build still freezes).

The problematic project's properties has "Additional Include Directories", but they are all on the local drive (in the same general folders as the main source). "Ignore Standard Include Path" is set to "no".
0 项奖励
Lorri_M_Intel
员工
2,139 次查看
Quoting - longden_loo
Thanks for that tip. I was able to set the number of processes to "1" so the build proceeded sequentially.

However, the build still locks up at the same point on the same project unless I add the missing module file back into the project's source files list.

If I understand correctly, thehang presents itself on a particular file that has zillions of errors caused by a missing mod file, yes?

I see we fixed one similar problem in Update3, where "too many errors" caused the compiler to hang. Sounds like yours is a close cousin to that one.

Are you willing to let us have the one source file that provokes the hang? Or, give me enough of a "pattern" (if you will) to try and reproduce it in house?

In the meantime, try increasing the error limit for that file (Properties->Fortran->Diagnostics) and see what happens.

thanks --

- Lorri
0 项奖励
longden_loo
初学者
2,139 次查看
>>
If I understand correctly, the hang presents itself on a particular file that has zillions of errors caused by a missing mod file, yes?

I see we fixed one similar problem in Update3, where "too many errors" caused the compiler to hang. Sounds like yours is a close cousin to that one.
<<

Maybe. But in fact, when I cancel my frozen build, it reports only 5 lines of errors related to the missing mod file.

I had mentioned that a co-worker was experiencing similar build freezes when one of his project had catastrophic errors caused by syntax. Now he is working with a pre-Update3 version of IVF so possibly his issue is closer to what you describe as fixed in Update3.

>>
Are you willing to let us have the one source file that provokes the hang? Or, give me enough of a "pattern" (if you will) to try and reproduce it in house?
<<

Unfortunately it's proprietary, but we are still trying to isolate a "sanitized" case that will demo the problem.

>>
In the meantime, try increasing the error limit for that file (Properties->Fortran->Diagnostics) and see what happens.
<<

I increased it from 30 (default) to 300 without any effect (still freezes at the same place).






0 项奖励
longden_loo
初学者
2,139 次查看
I think I've found the cause of my build hangs.

The problem isn't directly due to the absence of a module file during the compilation of the routine that USEs it, rather the missing module file causes a series of other compilation errors, mostly due to undeclared variables that were defined in the missing module.

Very specifically, error #6458 relating to an undefined structure seems to be the killer:

error #6458: This name must be the name of a variable with a derived type (structure type)

This simple main program duplicates the problem, and should result in the build hanging almost immediately. Checking Task Manager at that point should show fortcom running madly. Canceling the build should then show the above error message.

Sample:
implicit none
integer :: n=1
bogus(n)%aa%bb = 1
stop
end

... the problem seems very specific. If I shorten the structure reference to "bogus(n)%aa = 1", the build completes and shows the same error message, but no hanging occurs.
0 项奖励
Lorri_M_Intel
员工
2,139 次查看

OK, thanks for all that info ...
With only 5 errors, it's pretty clear you're not running into the same "too-many-errors" thing. It really does sound like the compiler is getting itself into a knot somewhere else.
0 项奖励
Lorri_M_Intel
员工
2,139 次查看
Quoting - longden_loo
I think I've found the cause of my build hangs.

The problem isn't directly due to the absence of a module file during the compilation of the routine that USEs it, rather the missing module file causes a series of other compilation errors, mostly due to undeclared variables that were defined in the missing module.

Very specifically, error #6458 relating to an undefined structure seems to be the killer:

error #6458: This name must be the name of a variable with a derived type (structure type)

This simple main program duplicates the problem, and should result in the build hanging almost immediately. Checking Task Manager at that point should show fortcom running madly. Canceling the build should then show the above error message.

Sample:
implicit none
integer :: n=1
bogus(n)%aa%bb = 1
stop
end

... the problem seems very specific. If I shorten the structure reference to "bogus(n)%aa = 1", the build completes and shows the same error message, but no hanging occurs.

Very cool, thanks!!!
0 项奖励
Lorri_M_Intel
员工
2,139 次查看

The good news (for a Friday afternoon) is that this seems to be fixed. When I compiled your program with one of our "under development" compilers,I got the same error you did with the simpler case:

F:tests>ifort -nologo u69925.f90
u69925.f90(3): error #6458: This name must be the name of a variable with a derived type (structure type) [BOGUS]
bogus(n)%aa%bb = 1
^
compilation aborted for u69925.f90 (code 1)


As always, I cannot promise update versions/dates, but this looks promising.

- Lorri
0 项奖励
longden_loo
初学者
2,139 次查看

Lorri,

Thx for the update ... I'm all for good news on a Friday afternoon, it makes for a more satisfying weekend.

Be looking forward to the the next "mo perfect" version :)
0 项奖励
回复