Opened 18 years ago

Closed 18 years ago

Last modified 15 years ago

#132 closed bug (fixed)

qgis crashes when viewing PostGIS tables

Reported by: cavallini@… Owned by: gsherman
Priority: major: does not work as expected Milestone:
Component: Data Provider Version: 0.8
Keywords: Cc:
Must Fix for Release: No Platform: Debian
Platform Version: etch Awaiting user input: no

Description

When opening a PostGIS table, in various situations we get:

Warning: QPainter::begin(): Painter is already active.

You must end() the painter before a second begin()

Segmentation fault

This happens eg if we click on the table icon after inserting a point and committing changes, or when we allow editing, select a point, and click on the "cut" icon.

In one occasion, we also got:

Warning: X Error: BadWindow (invalid Window parameter) 3

Major opcode: 20 (X_GetProperty) Resource id: 0x1603586

before segfaulting.

Change History (7)

comment:1 by cavallini@…, 18 years ago

After recent commit by mhugent (#5507) things have improved, but not solved; the crash does not occur in the first case (click on the table icon after inserting a point and committing changes), but it does in the second case (allow editing, select a point, and click on the "cut" icon).

comment:2 by mhugent, 18 years ago

I am not able to reproduce the second crash with my database. Do you have a debug version and a backtrace? Or what is the console output (besides the QPainter warning, which can be ignored)?

comment:3 by cavallini@…, 18 years ago

This is an strace (last lines):

ioctl(7, FIONREAD, [32]) = 0 read(7, "\5\1:\276d\3012\262L\0\0\0\330\0`\3\0\0\0\0;\3M\0\22\0"..., 32) = 32 gettimeofday({1149745938, 789955}, NULL) = 0 write(4, "\0", 1) = 1 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 send(10, "Q\0\0\0\rend work\0", 14, 0) = 14 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=10, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1 recv(10, "C\0\0\0\vCOMMIT\0Z\0\0\0\5I", 16384, 0) = 18 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 send(10, "Q\0\0\0\17begin work\0", 16, 0) = 16 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=10, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1 recv(10, "C\0\0\0\nBEGIN\0Z\0\0\0\5T", 16384, 0) = 17 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 send(10, "Q\0\0\0wdeclare qgisf binary cursor"..., 120, 0) = 120 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=10, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1 recv(10, "C\0\0\0\23DECLARE CURSOR\0Z\0\0\0\5T", 16384, 0) = 26 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 send(10, "Q\0\0\0\37fetch forward 1 from qgisf\0", 32, 0) = 32 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=10, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1 recv(10, "T\0\0\0C\0\2cat\0\0<\32\31\0\1\0\0\0\27\0\4\377\377\377"..., 16384, 0) = 125 rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0 send(10, "Q\0\0\0\37fetch forward 1 from qgisf\0", 32, 0) = 32 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 poll([{fd=10, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1 recv(10, "T\0\0\0C\0\2cat\0\0<\32\31\0\1\0\0\0\27\0\4\377\377\377"..., 16384, 0) = 104 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 18736 detached

comment:4 by anonymous, 18 years ago

Priority: criticalmajor

comment:5 by cavallini@…, 18 years ago

apparently this has been fixed. please somebody else check it and close the bug if appropriate

comment:6 by g_j_m, 18 years ago

Resolution: fixed
Status: newclosed

This problem appears to be resolved. Reopen if not...

comment:7 by (none), 15 years ago

Milestone: Version 0.8

Milestone Version 0.8 deleted

Note: See TracTickets for help on using tickets.