Opened 7 years ago

Closed 7 years ago

#5619 closed defect (fixed)

gajim crashes when upgrading from version 0.12.5

Reported by: einalex Owned by:
Priority: high Milestone: 0.14
Component: Core Version: hg
Severity: major Keywords:
Cc: cockneykevin@… Blocked By:
Blocking: OS: All

Description

Bug description

gajim crashes when trying to upgrade from version 0.12.5

Steps to reproduce

start gajim with a config set from 0.12.5

Traceback (most recent call last):

File "gajim.py", line 396, in <module>

interface = Interface()

File "/gajim/src/gui_interface.py", line 3226, in init

cfg_was_read = parser.read()

File "/gajim/src/common/optparser.py", line 79, in read

self.update_config(old_version, new_version)

File "/gajim/src/common/optparser.py", line 200, in update_config

self.update_config_from_0125()

File "/gajim/src/common/optparser.py", line 753, in update_config_from_0125

self.update_config_to_01215()

File "/gajim/src/common/optparser.py", line 707, in update_config_to_01215

dirs = ('../data', gajim.gajimpaths.root, gajim.DATA_DIR)

AttributeError?: ConfigPaths? instance has no attribute 'root' Error in atexit._run_exitfuncs: Traceback (most recent call last):

File "/usr/lib/python2.6/atexit.py", line 24, in _run_exitfuncs

func(*targs, kargs)

File "gajim.py", line 357, in on_exit

gajim.interface.roster.prepare_quit()

AttributeError?: 'NoneType?' object has no attribute 'prepare_quit' Error in sys.exitfunc: Traceback (most recent call last):

File "/usr/lib/python2.6/atexit.py", line 24, in _run_exitfuncs

func(*targs, kargs)

File "gajim.py", line 357, in on_exit

gajim.interface.roster.prepare_quit()

AttributeError?: 'NoneType?' object has no attribute 'prepare_quit'

Software versions

OS version: Ubuntu 9.10 Karmic Koala GTK version: 2.18 PyGTK version: 2.16

Change History (2)

comment:1 Changed 7 years ago by fantasticsid

  • Cc cockneykevin@… added

" dirs = ('../data', gajim.gajimpaths.root, gajim.DATA_DIR)"

Class ConfigPath? was refactored to replace a single root with config_root, cache_root, data_root. The code here is obsolete. I guess it should be:

dirs = ('../data', gajim.gajimpaths.data_root, gajim.DATA_DIR)

?

So what happens here IMHO is: during the initialisation of the interface, before the 'roster' field of interface is properly constructed, the above mentioned exception is thrown, causing roster to be 'None' (set in init method of class Interface (What a HUGE class!)), and thus the exceptions. (But I don't know how updating between these two versions should be handled)

comment:2 Changed 7 years ago by Yann Leboulanger <asterix@…>

  • Milestone set to 0.14
  • Resolution set to fixed
  • Status changed from new to closed

(In [56f481025ef8]) fix upgrading from 0.12.5. Fixes #5619

Note: See TracTickets for help on using tickets.