The following issue has been SUBMITTED. ====================================================================== http://bugs.librdf.org/mantis/view.php?id=403 ====================================================================== Reported By: thomasvs Assigned To: ====================================================================== Project: Redland Language Bindings Issue ID: 403 Category: api Reproducibility: always Severity: crash Priority: normal Status: new Binding Language (java, perl, php, python, ruby, tcl): python ====================================================================== Date Submitted: 2010-12-01 20:35 Last Modified: 2010-12-01 20:35 ====================================================================== Summary: destructor for RDF.Query throws an exception Description: While adapting my python program moap to adapt to changed symantics in str(Node), one of my invocations triggered the following traceback: DEBUG [20950] doap Dec 01 21:24:43 querying u'\nPREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\nPREFIX doap: <http://usefulinc.com/ns/doap#>\nPREFIX foaf: <http://xmlns.com/foaf/0.1/>\nSELECT ?fileRelease\nWHERE {\n ?project rdf:type doap:Project .\n ?project doap:shortname "moap" .\n ?project doap:release ?release .\n ?release doap:revision "0.2.7" .\n ?release doap:file-release ?fileRelease\n}\n' (moap/doap/doap.py:191) Traceback (most recent call last): File "/home/thomas/dev/own/moap/trunk/bin/moap", line 28, in <module> sys.exit(main(sys.argv[1:])) File "/home/thomas/dev/own/moap/trunk/moap/main.py", line 13, in main ret = c.parse(argv) File "/home/thomas/dev/own/moap/trunk/moap/extern/command/command.py", line 329, in parse return self.subCommands[command].parse(args[1:]) File "/home/thomas/dev/own/moap/trunk/moap/extern/command/command.py", line 329, in parse return self.subCommands[command].parse(args[1:]) File "/home/thomas/dev/own/moap/trunk/moap/extern/command/command.py", line 300, in parse ret = self.do(args) File "/home/thomas/dev/own/moap/trunk/moap/command/doap.py", line 419, in do project = d.getProject() File "/home/thomas/dev/own/moap/trunk/moap/doap/doap.py", line 126, in getProject self._queryReleases(p) File "/home/thomas/dev/own/moap/trunk/moap/doap/doap.py", line 170, in _queryReleases self._queryFileReleases(p, v) File "/home/thomas/dev/own/moap/trunk/moap/doap/doap.py", line 192, in _queryFileReleases result = self._querier.query(querystring, query_language='sparql') File "/home/thomas/dev/own/moap/trunk/moap/doap/common.py", line 43, in query q = RDF.Query(querystring, query_language=query_language) File "/usr/lib64/python2.7/site-packages/RDF.py", line 1943, in __init__ self._query = Redland.librdf_new_query(_world._world, query_language, ruri, querystring, rbase_uri) TypeError: in method 'librdf_new_query', argument 4 of type 'char const *' Exception AttributeError: "'Query' object has no attribute '_query'" in <bound method Query.__del__ of <RDF.Query object at 0x7fd5b16ce410>> ignored
The TypeError is worrying. __del__ destructors are usually not a good idea; from going through the code, it seems that the __init__ method triggers an exception before self._query is set, and then the destructor generates an additional exception. See http://www.algorithm.co.il/blogs/index.php/programming/python/python-gotchas-1-__del__-is-not-the-opposite-of-__init__/ So the basic problem here seems to be the query call failing. ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2010-12-01 20:35 thomasvs New Issue ====================================================================== _______________________________________________ redland-dev mailing list [email protected] http://lists.librdf.org/mailman/listinfo/redland-dev
