Komodo IDE 7b2 can't start after install under linux

Posted by malko on 2011-11-30 03:11
Forums: Komodo Beta | OS: Debian / Ubuntu

Hi,

Trying to update two differents machine both running ubuntu 11.10 and one of them just update great but the other just still can't start the beta2 of komodo 7 ide.

The one working run under a x64 os the other 32bit version just don't want to update.
Then i do a manual install by downloading the full archive on the site (md5sum is correct), but still refuse to install.
I removed my ~/Komodo7-0 and ~/.komodoide7.0 directories but still get crash when trying to launch it. For now rolling back to beta1, tell me if i can do something to help resolve this bug and make komodo beta2 working.

can't wait to test beta2 :)

mook_as
ActiveState Staff
Wed, 2011-11-30 11:36

Does it say anything interesting if you start it from a terminal via bin/komodo -v?

cgchoffman
ActiveState Staff
Wed, 2011-11-30 12:14

Hey Malko,

I wasn't able to reproduce this on my Ubuntu 11.10 x86 box. We are aware that the Auto-update isn't working though. What kind of crash are you getting? Do you get any error messages? If you can find the error log for Komodo at ~/.komodoIDE/7.0/pystderr.log please paste it here.

malko | Fri, 2011-12-09 03:54

Sorry for the late reply wasn't at work lately, and the only install that get me in trouble is on my office computer.
Here what i'm doing,
* lauching Komodo a window "update available" shows up I click on [update komodo ide]
* then window "Update ready to install" will be installed the next time ide restart I click on [Restart komodo ide]
* finally window "Update Failed" update could not be applied appears clicking [ok] and getting a "downloading komodo ide" then click on [Restart komodo ide]
* Komodo restart and open a window "Update Failed" with message The Update could not be installed (patch apply failed)

* Finally i go for manual install moving ~/.komodoide/7.0 and ~/Komodo-IDE-7 for backup
* download Komodo-IDE-7.0.0-beta2-67670-linux-x86.tar.gz uncompress and launching isntall.sh
so far so good.
* Then launching # ~/Komodo-IDE-7/bin/komodo -v open directly an "ActiveState crash reporter" crash report already sent so i just click [quit]

Here's the content of the command line result:

               
komodo: debug: Komodo information:
komodo: debug:   Version: Komodo IDE 7.0.0 Beta 2 (Build 67670)
komodo: debug:   OS type: Linux release 3.0.0-14-generic-pae on i686 (#23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011)
komodo: debug: Komodo startup options:
komodo: debug:  nFiles: 0
komodo: debug: mutex name: '/home/malko/.komodoide/7.0/mutex.lock'
komodo: debug: acquired mutex: fd=3
komodo: debug: running lock name: '/home/malko/.komodoide/7.0/running.lock'
komodo: debug: No current running Komodo - Ok: fd=4
komodo: debug: commandments file name: '/home/malko/.komodoide/7.0/commandments.fifo'
komodo: debug: first commandments file name: '/home/malko/.komodoide/7.0/first-commandments.txt'
komodo: debug: saving startup environment...
komodo: debug: startup env name: '/home/malko/.komodoide/7.0/startup-env.tmp'
komodo: debug: writing out startup environment
komodo: debug: setting up environment for XRE launch...
komodo: debug: setting _KOMODO_VERUSERDATADIR=/home/malko/.komodoide/7.0/
komodo: debug: setting KOMODO_VERBOSE=1
komodo: debug: setting XRE_PROFILE_PATH=/home/malko/.komodoide/7.0/XRE
komodo: debug: setting _XRE_USERAPPDATADIR=/home/malko/.komodoide/7.0/XRE
komodo: debug: startup argv for XRE:
komodo: debug:  argv[0] = './Komodo-IDE-7/bin/komodo'

pystderr.log just doesn't exists

Hope this will help, regards,

malko

mook_as
ActiveState Staff
Mon, 2011-12-12 11:20

Does the crash report manage to send anything? Hopefully there are files in ~/.komodoide/7.0/XRE/.activestate/komodo ide/Crash Reports/submitted - if there are, could you list the filenames here? That should help us look at the crash. Thanks!

malko | Thu, 2011-12-22 03:43

Sorry for the long time responding, problem still occur with rc1 :(
here's the contents of the crash reports:

Crash ID: bp-3bb95afa-19af-11e1-93c0-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/3bb95af...

Crash ID: bp-4c060df0-2c82-11e1-a706-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/4c060df...

Crash ID: bp-4ef55034-2c82-11e1-96ad-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/4ef5503...

Crash ID: bp-4efc060f-f3e7-11df-933a-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/4efc060...

Crash ID: bp-13b65496-174c-11e1-b26c-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/13b6549...

Crash ID: bp-1225ce40-174c-11e1-9a92-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/1225ce4...

Crash ID: bp-e4a98073-d6ab-11df-b11a-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/e4a9807...

Crash ID: bp-fa35ba68-d50f-11df-a3ce-001372fc64fb
You can view details of this crash at https://crash-reports.komodo.activestate.com/submit/report/index/fa35ba6...

hope it'll help.

This time i totally lost my komodo7b1 install and trying to reinstall just tell me that it expired :( really sad to return to 6 version that can't manage properly different projects in different windows.

toddw
ActiveState Staff
Thu, 2011-12-22 11:23

The 7.0.0b2 build has expired - so you'll need to install and try with the latest 7.0.0c1 release:
http://downloads.activestate.com/Komodo/releases/

Cheers,
Todd

malko | Fri, 2011-12-23 02:19

Yes I know but as stated in my previous message neither beta2 or rc1 work for me, the latest update that don't crash at start time at work is the beta1 :(
At home rc1 and beta2 are working good

mook_as
ActiveState Staff
Tue, 2012-01-03 12:54

Looking at the first crash (3bb95afa-19af-11e1-93c0-001372fc64fb), it's crashing somewhere in libcrypto:

Thread 0 (crashed)
0 libcrypto.so.1.0.0 + 0xc2fbc
eip = 0xaf699fbc esp = 0xbfabde10 ebp = 0xb23a9880 ebx = 0xaf771ff4
esi = 0xaf267c00 edi = 0xaf267d6c eax = 0x00000001 ecx = 0x00000008
edx = 0xb23a98e0 efl = 0x00210202
Found by: given as instruction pointer in context

Unfortunately, that doesn't really help - there are no symbols for it (it needs breakpad symbols for the module with id DEFE0585027ADAC4A8A848E07E30665D0). That involves having the matching symbols (installing libssl1.0.0-dbg and running dump_syms on it), which I can't quite figure out - the copy I do have access to has id 3DA41039EF31EDBC704FF8B106EF9A7F0 instead.

malko | Wed, 2012-01-18 02:55

hi mook_as,

I'm not sure what i can do to help you with that.

Latest rc1 produce same problem for me under latest ubuntu(office) and linux mint(home) too.
The new rc2 failed to upgrade on mint but downloading and installing it is fine and all work good at home.
At work under ubuntu, it still fail to upgrade, it fail also when installed even if i remove Komodo-IDE-7, .komodoide, .activestate directories...

I don't know what to do to give you more usable info, and i must admit i'm not understing really well this symbols story. I still can go with beta1 at work for now ( finally got it to work again by re-applying my commercial licence for komodo6 ) but i really hope to be able to use next komodo version on that OS.

cheers

davidf@sjsoft.com | Tue, 2012-02-07 05:28

I'm getting this consistently on Ubuntu 11.10, and this is what gdb shows as the stack trace:

#0  0xb121ffbc in EVP_PKEY_CTX_dup () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#1  0xb12121f6 in EVP_MD_CTX_copy_ex () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#2  0xb1212362 in EVP_MD_CTX_copy () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#3  0xb0e93c4d in ?? () from /home/davidf/Applications/Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#4  0xb0e93fc9 in ?? () from /home/davidf/Applications/Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#5  0xb549ba2d in PyCFunction_Call () from /home/davidf/Applications/Komodo-IDE-7/lib/mozilla/libpython2.6.so

Version is as follows:

# apt-cache show libssl1.0.0
Package: libssl1.0.0
Priority: required
Section: libs
Installed-Size: 2672
Maintainer: Ubuntu Developers 
Original-Maintainer: Debian OpenSSL Team 
Architecture: i386
Source: openssl
Version: 1.0.0e-2ubuntu4
Depends: libc6 (>= 2.7), zlib1g (>= 1:1.1.4), debconf (>= 0.5) | debconf-2.0
Pre-Depends: multiarch-support
Filename: pool/main/o/openssl/libssl1.0.0_1.0.0e-2ubuntu4_i386.deb
Size: 973680
MD5sum: 0908ea7372b0eac32dad7d0b86cd732c
SHA1: be2a648e34a0cff56b7b6e776ec9b30af0706398
SHA256: d1c52f338817b19136e0d894324f6b86c6e901f1507318f61dd77dcd0c492871
Description-en: SSL shared libraries
 libssl and libcrypto shared libraries needed by programs like
 apache-ssl, telnet-ssl and openssh.
 .
 It is part of the OpenSSL implementation of SSL.
Multi-Arch: same
Description-md5: 2e9416e72fb31714d9b26021a3ee7e85
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m
Task: minimal

davidf@sjsoft.com | Mon, 2012-02-13 04:38

I managed to fix this ... by compiling _hashlib.so from the Python sources against the libraries on my machine. Steps below:

export KOMODO_DIR=/home/davidf/Applications/Komodo-IDE-7
hg clone http://hg.python.org/cpython
cd cpython
hg checkout v2.6.5
(
    cd $KOMODO_DIR/lib/python/lib
    # handle no libssl.so
    ln -s /lib/libssl.so.0.9.8
    ln -s ./libssl.so.0.9.8 libssl.so
    # save the original _hashlib library
    cd python2.6/lib-dynload/
    mv _hashlib.so _hashlib.so.orig
)
# cd to python src for python 2.6.5
./configure --prefix $KOMODO_DIR/lib/python/
$KOMODO_DIR/lib/python/bin/python setup.py build_ext
cp build/lib.linux-i686-2.6/_hashlib.so $KOMODO_DIR/lib/python/lib/python2.6/lib-dynload/

Notes:

  • I didn't actually use the above script; it's a recreation. There may be mistakes :)
  • You need the CPython 2.6.5 sources; you can get these some other way if you like
  • There is probably a shorter, and simpler way to do this
  • This will build all the Python extension modules, not just the one you need
  • On Ubuntu 11.10, there's a libssl.so.0.9.8, but no libssl.so. The above linking allows the Python build to find them.
  • This actually works on my machine, but for 64-bit / another release, you may need some adjustments

malko | Tue, 2012-02-14 03:19

Thank's David this solve the problem for me with 32 bit too. Perhaps this can be modified directly in komodo distribution now that we know the origin of the problem ?

davidf@sjsoft.com | Mon, 2012-02-13 04:48

Posted this here: http://stackoverflow.com/questions/9259930/komodo-ide-7-crashes-on-ubunt... - any other solutions etc welcome

hughdbrown | Tue, 2012-04-17 11:06

I updated to 7.0.2 and Komodo won't run anymore. Previously, I built _hashlib.so from cpython 2.6.5 source and it worked but it has been broken since the update.

And I can no longer build _hashlib.so. I get these errors:

~/tmp/cpython$ ${KOMODO_DIR}/lib/python/bin/python setup.py build_ext
running build_ext
INFO: Can't locate Tcl/Tk libs and/or headers
building 'crypt' extension
gcc -pthread -fno-strict-aliasing -fPIC -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I. -I/home/hbrown/tmp/cpython/./Include -I/home/hbrown/Komodo-IDE-7/lib/python/include -I. -IInclude -I./Include -I/usr/local/include -I/home/hbrown/Komodo-IDE-7/lib/python/include/python2.6 -c /home/hbrown/tmp/cpython/Modules/cryptmodule.c -o build/temp.linux-i686-2.6/home/hbrown/tmp/cpython/Modules/cryptmodule.o
gcc -pthread -shared build/temp.linux-i686-2.6/home/hbrown/tmp/cpython/Modules/cryptmodule.o -L/usr/local/lib -L/home/hbrown/Komodo-IDE-7/lib/python/lib -lpython2.6 -o build/lib.linux-i686-2.6/crypt.so
*** WARNING: renaming "crypt" since importing it failed: build/lib.linux-i686-2.6/crypt.so: undefined symbol: crypt
building 'nis' extension
gcc -pthread -fno-strict-aliasing -fPIC -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I. -I/home/hbrown/tmp/cpython/./Include -I/home/hbrown/Komodo-IDE-7/lib/python/include -I. -IInclude -I./Include -I/usr/local/include -I/home/hbrown/Komodo-IDE-7/lib/python/include/python2.6 -c /home/hbrown/tmp/cpython/Modules/nismodule.c -o build/temp.linux-i686-2.6/home/hbrown/tmp/cpython/Modules/nismodule.o
gcc -pthread -shared build/temp.linux-i686-2.6/home/hbrown/tmp/cpython/Modules/nismodule.o -L/usr/local/lib -L/home/hbrown/Komodo-IDE-7/lib/python/lib -lpython2.6 -o build/lib.linux-i686-2.6/nis.so
*** WARNING: renaming "nis" since importing it failed: build/lib.linux-i686-2.6/nis.so: undefined symbol: yp_master

Failed to find the necessary bits to build these modules:
_bsddb             _hashlib           _sqlite3        
_ssl               _tkinter           bsddb185        
dbm                gdbm               sunaudiodev    
zlib                                                  
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:
crypt              nis                                

Googling the error messages has not been really informative.

Here is the call stack in gdb that I get when it fails:

(gdb) backtrace
#0  0xb0299fbc in EVP_PKEY_CTX_dup () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#1  0xb028c1f6 in EVP_MD_CTX_copy_ex () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#2  0xb028c362 in EVP_MD_CTX_copy () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#3  0xb016ec4d in ?? () from /home/hbrown/Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#4  0xb016efc9 in ?? () from /home/hbrown/Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#5  0xb54afa2d in PyCFunction_Call () from /home/hbrown/Komodo-IDE-7/lib/mozilla/libpython2.6.so
...
#72 0xb50d84e0 in ?? () from /home/hbrown/Komodo-IDE-7/lib/mozilla/components/libpyloader.so
#73 0xb7123cc7 in ?? () from /home/hbrown/Komodo-IDE-7/lib/mozilla/libxul.so

toddw
ActiveState Staff
Wed, 2012-04-18 16:29

I not sure why those modules are failing. You should be able to comment them out of the setup.py file - as you don't need them.

Cheers,
Todd

jason@jasonlefk... | Thu, 2012-04-19 09:07

For those who are getting the "Failed to build these modules: crypt nis" error that hughdbrown describes above when running the setup.py on Ubuntu, I found a solution that fixed the problem for me. It appears to be related to Ubuntu's move towards multiarch binary support -- there's a bunch of system libraries that live in new places because of that now, and setup.py can't find them. Hence the error.

The solution is to modify setup.py so that it looks up your system's architecture and adds the right paths for those libraries on your architecture to setup.py's search paths. Here's a diff that shows the exact lines you need to add to setup.py to do that. Once you add these lines setup.py will be able to build _hashlib.so again. (Or at least, it worked for me :-D )

One note: you'll still get the error message about "Failed to find the necessary bits" to build a bunch of other modules, but that doesn't appear to stop _hashlib.so from building, which is all we care about here as far as I know.

(Update: Here's a direct link to the bug thread in Python's bugtracker that the diff came from. Adding it in case it's helpful to AS in resolving this issue.)

hughdbrown | Thu, 2012-04-19 07:41

Jason's fix is correct and addresses my problem.

So the series of fixes you have to do to make Komodo 7 run on a Linux box that has a libssl error is:
(1) install Komodo, run licensing binary
(2) get the python 2.6.5 source from python.org
(3) patch the setup.py as Jason describes
(4) run python setup.py build_ext
(5) copy _hashlib.so to $KOMODO_DIR/lib/python/lib/python2.6/lib-dynload/

It would be really nice if this worked out of the box. This is the most detailed and fiddly build for any software component since I got a new work machine two weeks ago.

jason@jasonlefk... | Thu, 2012-04-19 08:35

"It would be really nice if this worked out of the box. This is the most detailed and fiddly build for any software component since I got a new work machine two weeks ago."

Agreed. I was only mildly cheesed off about it, because I use the free Komodo Edit product, and I figure getting something for free limits my right to complain. But if I'd paid for Komodo IDE (which I was seriously considering doing for a while, until this experience with Edit) I'd be seriously upset.

mook_as
ActiveState Staff
Thu, 2012-04-19 10:23

Agreed. Unfortunately, we still can't actually reproduce the bug (I tried with a fresh VM) :(

If possible, a list detailed steps to reproduce would help (starting with "download this Ubuntu/whatever ISO image). Please pretend we're five years old or something? :(

hughdbrown | Thu, 2012-04-19 08:42

This is what my komodo-patching script now looks like:

#!/bin/sh -e

export TMP_DIR=/home/${USER}/tmp
export KOMODO_DIR=/home/${USER}/Komodo-IDE-7
#export KOMODO_VERSION=Komodo-IDE-7.0.0-68957-linux-x86
export KOMODO_VERSION=Komodo-IDE-7.0.2-70257-linux-x86

echo Install gtk2-engine-pixbuf
sudo apt-get install gtk2-engines-pixbuf

echo cd to ${TMP_DIR}
cd ${TMP_DIR}

# Install the licensing
echo Install Komodo licensing
./Komodo-IDE-7-Linux-x86-S57A5A06A7C9.executable

# Install the Komodo binaries
echo Untar Komodo tar file
tar xvfz ${KOMODO_VERSION}.tar.gz

echo Install komodo
cd ${KOMODO_VERSION}
./install.sh --install-dir=${KOMODO_DIR}

# Patch Komodo's copy of _hashlib.so
# (1) Get python source from python.org
cd ${TMP_DIR}

hg clone http://hg.python.org/cpython
cd cpython
hg checkout v2.6.5
(
    # (2) backup original files
    echo Build python 2.6.5
    cd ${KOMODO_DIR}/lib/python/lib
    # handle no libssl.so
    ln -s /lib/libssl.so.0.9.8
    ln -s ./libssl.so.0.9.8 libssl.so
    # save the original _hashlib library
    cd python2.6/lib-dynload/
    mv _hashlib.so _hashlib.so.orig
)
# (3) configure for build
./configure --prefix ${KOMODO_DIR}/lib/python/

# (4) patch setup.py
#   I could not get the standard patch to work
#       wget http://bugs.python.org/file21465/d504ca7e0fe5.diff
#   so I rigged up an ed file to apply to setup.py
cat >> setup.py.ed << "EOF"
361c
        self.add_multiarch_paths()

.
356a
    def add_multiarch_paths(self):
        # Debian/Ubuntu multiarch support.
        # https://wiki.ubuntu.com/MultiarchSpec
        # self.build_temp
        tmpfile = os.path.join(self.build_temp, 'multiarch')
        if not os.path.exists(self.build_temp):
            os.makedirs(self.build_temp)
        ret = os.system('dpkg-architecture -qDEB_HOST_MULTIARCH > %s' %
                        tmpfile)
        try:
            if ret >> 8 == 0:
                with open(tmpfile) as fp:
                    multiarch_path_component = fp.readline().strip()
                add_dir_to_list(self.compiler.library_dirs,
                                '/usr/lib/' + multiarch_path_component)
                add_dir_to_list(self.compiler.include_dirs,
                                '/usr/include/' + multiarch_path_component)
        finally:
            os.unlink(tmpfile)

.
EOF

patch --ed setup.py setup.py.ed

# (5) build
${KOMODO_DIR}/lib/python/bin/python setup.py build_ext
cp build/lib.linux-i686-2.6/_hashlib.so ${KOMODO_DIR}/lib/python/lib/python2.6/lib-dynload/

cgchoffman
ActiveState Staff
Wed, 2012-05-02 17:29

Please see comment 12 for another fix.

- http://bugs.activestate.com/show_bug.cgi?id=92707