Package: devilspie
Version: 0.22-1
Severity: important

The following configuration recently (in the past week or so) started to
cause devilspie to crash. Interestingly when run with -d or -l it no
longer crashes. This is without the relevant windows open. I've included
the configuration file, a backtrace and output from -d.

$ cat ~/.devilspie/smtp-port-forwards.ds 
(if (contains (application_name) "localhost:20025:localhost:25 
yagan.indymedia.org")(begin (set_workspace 4)))
(if (contains (application_name) "localhost:40025:localhost:25 
master.debian.org")(begin (set_workspace 4)))
(if (contains (application_name) "localhost:10025:localhost:25 
bonedaddy.net")(begin (set_workspace 4)))
(if (contains (application_name) "localhost:30025:localhost:25 axxs.org")(begin 
(set_workspace 4)))


$ gdb --args devilspie 
GNU gdb (GDB) 7.0-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/devilspie...done.
(gdb) r
Starting program: /usr/bin/devilspie 
[Thread debugging using libthread_db enabled]
got eof

Program received signal SIGSEGV, Segmentation fault.
0x0000000000405fbe in e_sexp_term_eval (f=0x6450c0, t=0x61d480) at e-sexp.c:710
710                             r = t->value.func.sym->f.func(f, 
t->value.func.termcount, argv, t->value.func.sym->data);
(gdb) thread apply all bt full

Thread 1 (Thread 0x7ffff7fc77d0 (LWP 8699)):
#0  0x0000000000405fbe in e_sexp_term_eval (f=0x6450c0, t=0x61d480) at 
e-sexp.c:710
        r = 0x0
        i = 1
        __PRETTY_FUNCTION__ = "e_sexp_term_eval"
#1  0x0000000000405f94 in e_sexp_term_eval (f=0x6450c0, t=0x61d440) at 
e-sexp.c:706
        r = <value optimized out>
        i = 1
        __PRETTY_FUNCTION__ = "e_sexp_term_eval"
#2  0x0000000000406228 in term_eval_if (f=0x6450c0, argc=2, argv=0x648940, 
data=0x736f686c61636f6c) at e-sexp.c:639
        r = <value optimized out>
#3  0x0000000000405f33 in e_sexp_term_eval (f=0x6450c0, t=0x61d400) at 
e-sexp.c:700
        r = <value optimized out>
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "e_sexp_term_eval"
#4  0x000000000040610b in e_sexp_eval (f=0x6450c0) at e-sexp.c:1227
        __PRETTY_FUNCTION__ = "e_sexp_eval"
#5  0x0000000000403fe0 in run_sexp (sexp=0x6450c0, window=0x0) at devilspie.c:71
No locals.
#6  0x00007ffff7424acd in IA__g_list_foreach (list=<value optimized out>, 
func=0x403fd0 <run_sexp>, user_data=0x6358c0) at 
/tmp/buildd/glib2.0-2.22.3/glib/glist.c:789
        next = 0x61cce0
#7  0x00007ffff76be3ed in IA__g_closure_invoke (closure=0x63dab0, 
return_value=0x0, n_param_values=2, param_values=0x6360d0, 
invocation_hint=0x7fffffffd9a0)
    at /tmp/buildd/glib2.0-2.22.3/gobject/gclosure.c:767
        marshal = 0x7ffff76ca120 <IA__g_cclosure_marshal_VOID__OBJECT>
        marshal_data = 0x0
        __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
#8  0x00007ffff76d1cdb in signal_emit_unlocked_R (node=0x6127e0, detail=0, 
instance=0x63f820, emission_return=0x0, instance_and_params=0x6360d0)
    at /tmp/buildd/glib2.0-2.22.3/gobject/gsignal.c:3247
        tmp = <value optimized out>
        handler = 0x634b20
        accumulator = 0x0
        emission = {next = 0x0, instance = 0x63f820, ihint = {signal_id = 14, 
detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 
4}
        class_closure = 0x612750
        handler_list = 0x634b20
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong 
= 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, 
{v_int = 0, 
              v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, 
v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 14
        max_sequential_handler_number = 8
        return_value_altered = 0
#9  0x00007ffff76d3082 in IA__g_signal_emit_valist (instance=0x63f820, 
signal_id=<value optimized out>, detail=0, var_args=0x7fffffffdb80)
    at /tmp/buildd/glib2.0-2.22.3/gobject/gsignal.c:2980
        signal_return_type = 4
---Type <return> to continue, or q <return> to quit---
        param_values = 0x6360e8
        node = 0x6127e0
        i = 1
        n_params = 1
        __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
#10 0x00007ffff76d3553 in IA__g_signal_emit (instance=0x6450c0, signal_id=0, 
detail=4294956816) at /tmp/buildd/glib2.0-2.22.3/gobject/gsignal.c:3037
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 
0x7fffffffdc60, reg_save_area = 0x7fffffffdba0}}
#11 0x00007ffff7bba9e1 in ?? () from /usr/lib/libwnck-1.so.22
No symbol table info available.
#12 0x00007ffff7bbb0b4 in ?? () from /usr/lib/libwnck-1.so.22
No symbol table info available.
#13 0x00007ffff742713a in g_main_dispatch (context=0x638690) at 
/tmp/buildd/glib2.0-2.22.3/glib/gmain.c:1960
        __PRETTY_FUNCTION__ = "g_main_dispatch"
#14 IA__g_main_context_dispatch (context=0x638690) at 
/tmp/buildd/glib2.0-2.22.3/glib/gmain.c:2513
No locals.
#15 0x00007ffff742a998 in g_main_context_iterate (context=0x638690, block=1, 
dispatch=1, self=<value optimized out>) at 
/tmp/buildd/glib2.0-2.22.3/glib/gmain.c:2591
        max_priority = 200
        timeout = 0
        some_ready = 1
        nfds = 1
        allocated_nfds = <value optimized out>
        fds = 0x63f2f0
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#16 0x00007ffff742ae6d in IA__g_main_loop_run (loop=0x63da50) at 
/tmp/buildd/glib2.0-2.22.3/glib/gmain.c:2799
        self = 0x649840
        __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#17 0x0000000000403f24 in main (argc=1, argv=0x7fffffffdfc8) at devilspie.c:149
        error = 0x0
        context = 0x1
        options = {{long_name = 0x409253 "apply-to-existing", short_name = 97 
'a', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x60c860, 
            description = 0x4092c8 "Apply to all existing windows instead of 
just new windows.", arg_description = 0x0}, {long_name = 0x409265 "debug", 
short_name = 100 'd', 
            flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x60c840, 
description = 0x40926b "Output debug information", arg_description = 0x0}, 
{long_name = 0x4095e0 "", 
            short_name = 0 '\000', flags = 0, arg = 
G_OPTION_ARG_FILENAME_ARRAY, arg_data = 0x60c858, description = 0x409284 
"Configuration files to use", arg_description = 0x0}, 
          {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = 
G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
(gdb) quit
A debugging session is active.

        Inferior 1 [process 8699] will be killed.

Quit anyway? (y or n) y


$ gdb --args devilspie -d
GNU gdb (GDB) 7.0-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/devilspie...done.
(gdb) r
Starting program: /usr/bin/devilspie -d
[Thread debugging using libthread_db enabled]
Devil's Pie 0.22 starting...
Loading /etc/devilspie
/etc/devilspie doesn't exist
Loading /home/pabs/.devilspie
Loading /home/pabs/.devilspie/smtp-port-forwards.ds
got eof
5 s-expressions loaded.

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed

** (devilspie:8713): CRITICAL **: e_sexp_eval: assertion `f->tree != NULL' 
failed
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7158708 in *__GI___poll (fds=0x63f290, nfds=1, timeout=<value 
optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:83
83      ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
        in ../sysdeps/unix/sysv/linux/poll.c
(gdb) quit
A debugging session is active.

        Inferior 1 [process 8713] will be killed.

Quit anyway? (y or n) y


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (700, 'testing'), (600, 'unstable'), (550, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages devilspie depends on:
ii  libc6                         2.10.2-2   GNU C Library: Shared libraries
ii  libglib2.0-0                  2.22.3-1   The GLib library of C routines
ii  libgtk2.0-0                   2.18.3-1   The GTK+ graphical user interface 
ii  libwnck22                     2.28.0-1   Window Navigator Construction Kit 
ii  libx11-6                      2:1.3.2-1  X11 client-side library

-- 
bye,
pabs

http://wiki.debian.org/PaulWise

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to