Project

Profile

Help

Bug #5542

closed

Python example causes segmentation error

Added by O'Neil Delpratt almost 2 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Category:
Python
Start date:
2022-05-26
Due date:
% Done:

100%

Estimated time:
Found in version:
11.3
Fixed in version:
11.4
Platforms:

Description

The following python script causes a segmentation error:

from saxonc import *

with PySaxonProcessor(license=False) as proc:

  print(proc.version)
  xdmAtomicval = proc.make_boolean_value(False)
  xsltproc = proc.new_xslt30_processor()
  executable = xsltproc.compile_stylesheet(stylesheet_file="test.xsl")
  executable.set_result_as_raw_value(True)
  executable.set_initial_match_selection(file_name="cat.xml")
  xdm_atomic_value = proc.make_integer_value(5)
  executable.set_parameter("param",proc.make_string_value("text"))
  executable.set_parameter("param2",xdm_atomic_value)
  result = executable.apply_templates_returning_string()
  print(result)

Running under gdb we get some insight as to where the segmentation fault occurs:

SaxonC-HE 11.3 from Saxonica

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007ffff7481bdb in SaxonProcessor::createParameterJArray (parameters=std::map with 2 elements = {...}, properties=std::map with 2 elements = {...}, 
    additions=additions@entry=0) at ../SaxonProcessor.cpp:543
543	            SaxonProcessor::sxn_environ->env->SetObjectArrayElement(comboArrays.objectArray, i,
(gdb) bt
#0  0x00007ffff7481bdb in SaxonProcessor::createParameterJArray (parameters=std::map with 2 elements = {...}, properties=std::map with 2 elements = {...}, 
    additions=additions@entry=0) at ../SaxonProcessor.cpp:543
#1  0x00007ffff749da78 in XsltExecutable::applyTemplatesReturningString (this=0xfd8270) at /usr/include/c++/9/bits/stl_tree.h:129
#2  0x00007ffff7478832 in __pyx_pf_6saxonc_16PyXsltExecutable_50apply_templates_returning_string (__pyx_v_self=0x7ffff7557e50, __pyx_v_kwds=<optimised out>)
    at saxonc.cpp:22186
#3  __pyx_pw_6saxonc_16PyXsltExecutable_51apply_templates_returning_string (__pyx_v_self=0x7ffff7557e50, __pyx_args=<optimised out>, __pyx_kwds=<optimised out>)
    at saxonc.cpp:21831
#4  0x0000000000503b99 in ?? ()
#5  0x000000000056b1da in _PyEval_EvalFrameDefault ()
#6  0x000000000056939a in _PyEval_EvalCodeWithName ()
#7  0x000000000068d047 in PyEval_EvalCode ()
#8  0x000000000067e351 in ?? ()
#9  0x000000000067e3cf in ?? ()
#10 0x000000000067e471 in ?? ()
#11 0x000000000067e817 in PyRun_SimpleFileExFlags ()
#12 0x00000000006b6fe2 in Py_RunMain ()
#13 0x00000000006b736d in Py_BytesMain ()
#14 0x00007ffff7de8083 in __libc_start_main (main=0x4eead0 <main>, argc=2, argv=0x7fffffffe1c8, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, 
    stack_end=0x7fffffffe1b8) at ../csu/libc-start.c:308
#15 0x00000000005fa5ce in _start ()

Related issues

Related to SaxonC - Bug #5533: segfault when setting xslt parameter in a loopClosedO'Neil Delpratt2022-05-23

Actions
Related to SaxonC - Bug #5452: set_source and set_output_file functions don't exists but are in examplesClosedO'Neil Delpratt2022-04-08

Actions

Please register to edit this issue

Also available in: Atom PDF