Bug 68818 - Accidentally cross linked libraries cause endless looping and eventually crash.
Summary: Accidentally cross linked libraries cause endless looping and eventually crash.
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: Build tools: Automake (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-23 01:34 UTC by nick smethurst
Modified: 2007-11-30 17:40 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description nick smethurst 2003-11-23 01:34:17 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.3.1 
OS:          Linux

In auto project, if a project contains two libtool libraries and they are mistakenly crosslinked, KDevelop enters into an endless loop when the user types F7 to compile, and eventually crashes:

A bit of the resulting kdebug output (full directory paths not shown):

kdevelop (auto project):

Scheduling : < .. /src/libkvvtk/>  target <libkvvtk.la>
Looking for path src/libkvvtk
 ... checking -/ .. -
 ... (tailored: -- against -src/libkvvtk- )
 ... checking -/ .. /doc-
 ... (tailored: -doc- against -src/libkvvtk- )
 ... checking -/ .. /doc/en-
 ... (tailored: -doc/en- against -src/libkvvtk- )
 ... checking -/ .. /po-
 ... (tailored: -po- against -src/libkvvtk- )
 ... checking -/ .. /src-
 ... (tailored: -src- against -src/libkvvtk- )
 ... checking -/ .. /src/libkvisualiser-
 ... (tailored: -src/libkvisualiser- against -src/libkvvtk- )
 ... checking -/ .. /src/libkvvtk-
 ... (tailored: -src/libkvvtk- against -src/libkvvtk- )
Found it!
Found config optimized
Found config debug
Scheduling : < .. /src/libkvisualiser/>  target <libkvisualiser.la>
Looking for path src/libkvisualiser
 ... checking -/ .. -
 ... (tailored: -- against -src/libkvisualiser- )
 ... checking -/ .. /doc-
 ... (tailored: -doc- against -src/libkvisualiser- )
 ... checking -/ .. /doc/en-
 ... (tailored: -doc/en- against -src/libkvisualiser- )
 ... checking -/ .. /po-
 ... (tailored: -po- against -src/libkvisualiser- )
 ... checking -/ .. /src-
 ... (tailored: -src- against -src/libkvisualiser- )
 ... checking -/ .. /src/libkvisualiser-
 ... (tailored: -src/libkvisualiser- against -src/libkvisualiser- )
Found it!
Found config optimized
Found config debug
Scheduling : < .. /src/libkvvtk/>  target <libkvvtk.la>
Looking for path src/libkvvtk
 ... checking -/ .. -
 ... (tailored: -- against -src/libkvvtk- )
 ... checking -/ .. /doc-
 ... (tailored: -doc- against -src/libkvvtk- )
 ... checking -/ .. /doc/en-
 ... (tailored: -doc/en- against -src/libkvvtk- )
 ... checking -/ .. /po-
 ... (tailored: -po- against -src/libkvvtk- )
 ... checking -/ .. /src-
 ... (tailored: -src- against -src/libkvvtk- )
 ... checking -/ .. /src/libkvisualiser-
 ... (tailored: -src/libkvisualiser- against -src/libkvvtk- )
 ... checking -/ .. /src/libkvvtk-
 ... (tailored: -src/libkvvtk- against -src/libkvvtk- )
Found it!
Found config optimized

and so on ..

Maybe there should be some kind of check for this user error which prevents the crash?
Comment 1 Amilcar do Carmo Lucas 2003-11-23 14:08:38 UTC
OK, I'll take a look at it
Comment 2 Amilcar do Carmo Lucas 2003-11-23 14:27:12 UTC
The problem is in the recursive function:
void AutoProjectPart::queueInternalLibDependenciesBuild(TargetItem* titem)
that starts around line buildtools/autotools/autoprojectpart.cpp:665 

The fix seams to be non trivial due to the async nature of the function.
Besides that we need to issue an error to the user, and we are currently in a string freeze, so I'll postpone this one for after the release.

Thanks for reporting.
Comment 3 Amilcar do Carmo Lucas 2004-01-21 15:10:37 UTC
Reopen, because the REMIND state "hides" the bug
Comment 4 Andreas Pakulat 2007-11-30 17:40:46 UTC
SVN commit 743327 by apaku:

Check for circular dependecies and tell the user if one is found.
BUG:68818

 M  +62 -37    autoprojectpart.cpp  
 M  +1 -1      autoprojectpart.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=743327