Re: Strange cjson bug doesn't occur in Pydb




[Note: I changed the subject line to make it more informative.]

In <6bciubF3asvq1U1@xxxxxxxxxxxxxxxxx> "Diez B. Roggisch" <deets@xxxxxxxxxxxxx> writes:

kj wrote:

In <6bb01lF38u72tU1@xxxxxxxxxxxxxxxxx> "Diez B. Roggisch"
<deets@xxxxxxxxxxxxx> writes:

kj schrieb:
I'm running into a strange seg fault with the module cjson. The
strange part is that it does not occur when I run the code under
Emacs' Pydb.

Here's an example:


import sys, cjson

d1 = {'a': 1, 'b': 2, 'c': 3}
print sys.version
j1 = cjson.encode(d1)
print j1 # should print the string '{"a": 1, "c": 3, "b": 2}'

The code above runs fine under Pydb, but segfaults at the call to
cjson.encode when I run it from the command line in a standard
Linux shell interaction. In the printed version strings are
identical.

I figure this must be a bug in cjson. I'd love to find a workaround
for it, and hope that this strange difference between Pydb and the
shell command line may be a clue to that.

Any thoughts?

Are you sure you actually run the same interpreter in emacs as you do on
the commandline?

No, I'm not. All I know is that both Emacs and the commandline
are running on the same machine, and that the version string that
the program prints is the same in both conditions. How can I verify
that that the same interpreter is running in both cases?

By e.g.

import sys
print sys.prefix

Additionally, you should compare what

sys.path

contains and if it's the same - otherwise it might be that cjson is picked
up from somewhere else.

If all that's the case, I'd invoke python through gdb and see where the
segfault happens.


Thanks for that suggestion. I did so, and this is gdb's output at
the time failure:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47622454277872 (LWP 14555)]
encode_object (object=0x777390) at cjson.c:946
946 temp = PyList_GET_ITEM(pieces, 0);

In my experience, however, the root cause of a segfault is often
quite far away in the code from where it is triggered...

Anyway, thanks for your help.

kynn

--
NOTE: In my address everything before the first period is backwards;
and the last period, and everything after it, should be discarded.
.



Relevant Pages

  • Re: ksh on aix5.2 ml03 - strange read results
    ... ksh on aix5.2 ml03 - strange read results ... JOSEPH KREMBLAS a écrit: ... > command looks at IFS to make decisions as to the input file separator. ... > user adm has no .kshrc ...
    (AIX-L)
  • Re: Probs burning CDs
    ... >> I tried it also as root, ... What also is strange is the fact that I say ... If you set the program with suid you should be able to burn from the command ... I dont know why your cd burning stopped working and suddenly started ...
    (alt.os.linux.suse)
  • Re: Problem: Linux 2.6 running in vmware
    ... >> It is multiple executables segfaulting. ... Wouldn't it be strange for the problems only to affect ... There is a syntax error in the command. ...
    (comp.os.linux.development.system)
  • Re: TK scope "cant read . . . no such variable"
    ... to be used in strange situations ... immediate side-effect). ... would break your command. ... Now we are back to which execute a command immediately, ...
    (comp.lang.tcl)
  • Re: Strange bug doesnt occur in Pydb
    ... Emacs' Pydb. ... I figure this must be a bug in cjson. ... shell command line may be a clue to that. ... All I know is that both Emacs and the commandline ...
    (comp.lang.python)