<div class="gmail_quote">On Sat, Apr 11, 2009 at 3:41 PM, Darren Dale <span dir="ltr">&lt;<a href="mailto:dsdale24@gmail.com">dsdale24@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5"><div class="gmail_quote">On Sat, Apr 11, 2009 at 12:51 PM, Detlev Offenbach <span dir="ltr">&lt;<a href="mailto:detlev@die-offenbachs.de" target="_blank">detlev@die-offenbachs.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div></div><div>On Samstag, 11. April 2009, Darren Dale wrote:<br>
&gt; On Sat, Apr 11, 2009 at 10:00 AM, Detlev Offenbach<br>
&gt; &lt;<a href="mailto:detlev@die-offenbachs.de" target="_blank">detlev@die-offenbachs.de</a><br>
&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; On Samstag, 11. April 2009, Darren Dale wrote:<br>
&gt; &gt; &gt; On Sat, Apr 11, 2009 at 9:40 AM, Detlev Offenbach<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &lt;<a href="mailto:detlev@die-offenbachs.de" target="_blank">detlev@die-offenbachs.de</a>&gt;wrote:<br>
&gt; &gt; &gt; &gt; On Samstag, 11. April 2009, Darren Dale wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hello,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I have been trying to keep up with the sip/pyqt/qscintilla<br>
&gt; &gt; &gt; &gt; &gt; snapshots (installed on up-to-date kubuntu jaunty prerelease).<br>
&gt; &gt; &gt; &gt; &gt; There have been<br>
&gt; &gt;<br>
&gt; &gt; a<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; few<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; issues trying to run eric in this environment, but it looks like<br>
&gt; &gt; &gt; &gt; &gt; they<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; have<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; been mostly addressed in subsequent snapshots from riverbank.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; There is one issue I am seeing this morning with the latest<br>
&gt; &gt; &gt; &gt; &gt; snapshots<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; that<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am not sure how to investigate. If I start eric from the command<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; prompt,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; it launches successfully. If I make an entry in the kde start menu<br>
&gt; &gt;<br>
&gt; &gt; and<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; launch eric from there, it crashes. I can choose &quot;Run in terminal&quot;<br>
&gt; &gt; &gt; &gt; &gt; as an option for the menu entry, and the output is simply &quot;Warning:<br>
&gt; &gt; &gt; &gt; &gt; Program &#39;/usr/local/bin/eric4&#39; crashed.&quot; I thought I could get more<br>
&gt; &gt; &gt; &gt; &gt; information about the crash if I edited the menu command to be<br>
&gt; &gt; &gt; &gt; &gt; &quot;eric4 --debug&quot;, but when I do so, eric doesnt crash! I get this<br>
&gt; &gt; &gt; &gt; &gt; debugging output during startup:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Importing packages...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Generating Main Window...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Plugin Manager...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Generating Main User Interface...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Setting up connections...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Tools...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Registering Objects...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Actions...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Menus...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Toolbars...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Initializing Statusbar...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Activating Plugins...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Restoring Toolbarmanager...<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt; DEBUG:root:Config Dir: None; exists: False<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Can anyone suggest a next step?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks,<br>
&gt; &gt; &gt; &gt; &gt; Darren<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; You could try compile sip/pyqt/qscintilla with debugging symbols and<br>
&gt; &gt; &gt; &gt; start eric4 in a debugger like kdbg. If it crashes, you will see in<br>
&gt; &gt;<br>
&gt; &gt; which<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; file it fails.<br>
&gt; &gt; &gt; &gt;  &lt;<a href="mailto:detlev@die-offenbachs.de" target="_blank">detlev@die-offenbachs.de</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I dont think it is possible to start eric4 with kdbg or gdb, because<br>
&gt; &gt;<br>
&gt; &gt; eric4<br>
&gt; &gt;<br>
&gt; &gt; &gt; is not an executable file.<br>
&gt; &gt;<br>
&gt; &gt; You can. Just load python as the program to debug and give it eric4.py as<br>
&gt; &gt; the<br>
&gt; &gt; command line. I did it this way, when PyQt4 was it&#39;s infancy.<br>
&gt; &gt;<br>
&gt; &gt; &gt; I just noticed a different error though. I started eric4 with --debug,<br>
&gt; &gt; &gt; tried to configure some preferences, and eric4 crashed with:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  Original exception was:<br>
&gt; &gt; &gt; Traceback (most recent call last):<br>
&gt; &gt; &gt;   File<br>
&gt; &gt; &gt; &quot;/usr/lib/python2.6/dist-packages/eric4/Project/ProjectBrowserModel.py&quot;<br>
&gt; &gt; &gt;, line 272, in data<br>
&gt; &gt; &gt;     return BrowserModel.data(self, index,<br>
&gt; &gt; &gt; role)<br>
&gt; &gt; &gt;   File &quot;/usr/lib/python2.6/dist-packages/eric4/UI/BrowserModel.py&quot;,<br>
&gt; &gt; &gt; line 77, in data<br>
&gt; &gt; &gt;     if role ==<br>
&gt; &gt; &gt; Qt.DisplayRole:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; RuntimeError: maximum recursion depth exceeded in<br>
&gt; &gt; &gt; cmp<br>
&gt; &gt; &gt; Error in<br>
&gt; &gt; &gt; sys.excepthook:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Traceback (most recent call<br>
&gt; &gt; &gt; last):<br>
&gt; &gt; &gt;   File &quot;/usr/lib/python2.6/dist-packages/eric4/eric4.py&quot;, line 111, in<br>
&gt; &gt; &gt; excepthook<br>
&gt; &gt; &gt;     logFile = os.path.join(unicode(Utilities.getConfigDir()),<br>
&gt; &gt; &gt; &quot;eric4_error.log&quot;)<br>
&gt; &gt; &gt;   File &quot;/usr/lib/python2.6/dist-packages/eric4/Utilities/__init__.py&quot;,<br>
&gt; &gt;<br>
&gt; &gt; line<br>
&gt; &gt;<br>
&gt; &gt; &gt; 978, in getConfigDir<br>
&gt; &gt; &gt;     (configDir, (configDir is not None) and<br>
&gt; &gt; &gt; os.path.exists(configDir)))<br>
&gt; &gt; &gt;   File &quot;/usr/lib/python2.6/logging/__init__.py&quot;, line 1459, in<br>
&gt; &gt; &gt; debug<br>
&gt; &gt; &gt;     root.debug(*((msg,)+args),<br>
&gt; &gt; &gt; **kwargs)<br>
&gt; &gt; &gt;   File &quot;/usr/lib/python2.6/logging/__init__.py&quot;, line 1017, in<br>
&gt; &gt; &gt; debug<br>
&gt; &gt; &gt;     if<br>
&gt; &gt; &gt; self.isEnabledFor(DEBUG):<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; RuntimeError: maximum recursion depth exceeded<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Darren<br>
&gt; &gt;<br>
&gt; &gt; Just delete the first line of Utilities.getConfigDir(), which is the<br>
&gt; &gt; logging<br>
&gt; &gt; line.<br>
&gt;<br>
&gt; Thanks Detlev. I&#39;m running the svn checkout, updated just now, on a system<br>
&gt; with no ~.eric4/ or .config/Eric4/, and that change brings me to a<br>
&gt; different error:<br>
&gt;<br>
&gt; Original exception was:<br>
&gt; Traceback (most recent call last):<br>
&gt;   File &quot;/home/darren/Projects/eric4/UI/BrowserModel.py&quot;, line 113, in<br>
&gt; headerData<br>
&gt;     if orientation == Qt.Horizontal and role == Qt.DisplayRole:<br>
&gt; RuntimeError: maximum recursion depth exceeded in cmp<br>
&gt; Error in sys.excepthook:<br>
&gt; Traceback (most recent call last):<br>
&gt;   File &quot;./eric4.py&quot;, line 111, in excepthook<br>
&gt;     logFile = os.path.join(unicode(Utilities.getConfigDir()),<br>
&gt; &quot;eric4_error.log&quot;)<br>
&gt;   File &quot;/home/darren/Projects/eric4/Utilities/__init__.py&quot;, line 980, in<br>
&gt; getConfigDir<br>
&gt;     if sys.platform == &quot;win32&quot;:<br>
&gt; RuntimeError: maximum recursion depth exceeded in cmp<br>
&gt;<br>
&gt; Darren<br>
<br>
</div></div>cmp is a Python function. It seems it is invoked by &#39;==&#39;. I have no idea why<br>
it should go into an infinite loop.<br><br></blockquote><div> </div></div></div></div>I don&#39;t think cmp or == is causing python to go into an infinite loop. I think I&#39;m seeing a problem in eric4.py&#39;s excepthook, and everytime it is encountered and tries to raise an exception, it recurses into excepthook again.<font color="#888888"><br>

</font></blockquote></div><br>I tried commenting out the line setting sys.excepthook in eric4.py, and then I ran into trouble with ubuntu jaunty&#39;s python-apport, which further obfuscated the problem. I uninstalled python-apport and now I see: <br>
<br>RuntimeError: maximum recursion depth exceeded                                                                     <br>RuntimeError: maximum recursion depth exceeded                                                                     <br>
Traceback (most recent call last):                                                                                 <br>  File &quot;/home/darren/Projects/eric4/Project/ProjectFormsBrowser.py&quot;, line 1070, in handlePreferencesChanged        <br>
    ProjectBaseBrowser.handlePreferencesChanged(self)                                                              <br>  File &quot;/home/darren/Projects/eric4/UI/Browser.py&quot;, line 286, in handlePreferencesChanged<br>
    self.model().preferencesChanged()<br>  File &quot;/home/darren/Projects/eric4/Project/ProjectBrowserSortFilterProxyModel.py&quot;, line 69, in preferencesChanged<br>    BrowserSortFilterProxyModel.preferencesChanged(self)<br>
  File &quot;/home/darren/Projects/eric4/UI/BrowserSortFilterProxyModel.py&quot;, line 107, in preferencesChanged<br>    hideNonPublic = Preferences.getUI(&quot;BrowsersHideNonPublic&quot;)<br>RuntimeError: maximum recursion depth exceeded<br>
Traceback (most recent call last):<br>  File &quot;/home/darren/Projects/eric4/Project/ProjectResourcesBrowser.py&quot;, line 777, in handlePreferencesChanged<br>    ProjectBaseBrowser.handlePreferencesChanged(self)<br>  File &quot;/home/darren/Projects/eric4/UI/Browser.py&quot;, line 286, in handlePreferencesChanged<br>
    self.model().preferencesChanged()<br>  File &quot;/home/darren/Projects/eric4/Project/ProjectBrowserSortFilterProxyModel.py&quot;, line 69, in preferencesChanged<br>    BrowserSortFilterProxyModel.preferencesChanged(self)<br>
  File &quot;/home/darren/Projects/eric4/UI/BrowserSortFilterProxyModel.py&quot;, line 107, in preferencesChanged<br>    hideNonPublic = Preferences.getUI(&quot;BrowsersHideNonPublic&quot;)<br>RuntimeError: maximum recursion depth exceeded<br>
Traceback (most recent call last):<br>  File &quot;/home/darren/Projects/eric4/Project/ProjectTranslationsBrowser.py&quot;, line 1070, in handlePreferencesChanged<br>    ProjectBaseBrowser.handlePreferencesChanged(self)<br>
  File &quot;/home/darren/Projects/eric4/UI/Browser.py&quot;, line 286, in handlePreferencesChanged<br>    self.model().preferencesChanged()<br>  File &quot;/home/darren/Projects/eric4/Project/ProjectBrowserSortFilterProxyModel.py&quot;, line 69, in preferencesChanged<br>
    BrowserSortFilterProxyModel.preferencesChanged(self)<br>  File &quot;/home/darren/Projects/eric4/UI/BrowserSortFilterProxyModel.py&quot;, line 107, in preferencesChanged<br>    hideNonPublic = Preferences.getUI(&quot;BrowsersHideNonPublic&quot;)<br>
RuntimeError: maximum recursion depth exceeded<br>Traceback (most recent call last):<br>  File &quot;./Plugins/ViewManagerPlugins/Tabview/Tabview.py&quot;, line 971, in preferencesChanged<br>    ViewManager.preferencesChanged(self)<br>
  File &quot;/home/darren/Projects/eric4/ViewManager/ViewManager.py&quot;, line 4622, in preferencesChanged<br>    self.__enableSpellingActions()<br>  File &quot;/home/darren/Projects/eric4/ViewManager/ViewManager.py&quot;, line 2848, in __enableSpellingActions<br>
    spellingAvailable = SpellChecker.isAvailable()<br>  File &quot;/home/darren/Projects/eric4/QScintilla/SpellChecker.py&quot;, line 78, in isAvailable<br>    return len(enchant.list_languages()) &gt; 0<br>  File &quot;/usr/lib/python2.6/dist-packages/enchant/__init__.py&quot;, line 418, in list_languages<br>
    for (tag,prov) in self.list_dicts():<br>  File &quot;/usr/lib/python2.6/dist-packages/enchant/__init__.py&quot;, line 397, in list_dicts<br>    return [ (r[0],ProviderDesc(*r[1])) for r in self.__list_dicts_result]<br>
  File &quot;/usr/lib/python2.6/dist-packages/enchant/__init__.py&quot;, line 406, in __list_dicts_callback<br>    name = name.decode(&quot;utf-8&quot;)<br><br>Darren<br>