Re: [xml] Crash pb with multi-thread program (libxml2.7.1, Win32, msvc v15.00.21022.08)
- From: Boz <boz boz org uk>
- To: "Philippe BOINOT" <philippe boinot pertimm com>
- Cc: xml gnome org
- Subject: Re: [xml] Crash pb with multi-thread program (libxml2.7.1, Win32, msvc v15.00.21022.08)
- Date: Thu, 11 Sep 2008 17:11:49 +0100
On Thu, Sep 11, 2008 at 4:48 PM, Philippe BOINOT
<philippe boinot pertimm com> wrote:
Hello,
On Windows XP, I have a crash when some functions in libxml2 are in
interaction with threads.
Please read the documentation about Thread Safety:
http://xmlsoft.org/threads.html
Specifically, it doesn't look like you're doing #2:
" - call xmlInitParser() in the "main" thread before using any of the
libxml2 API (except possibly selecting a different memory allocator)"
Hope that helps,
Boz
#include <stdio.h>
#include <errno.h>
#include <windows.h>
#include <winbase.h>
#include <process.h>
#include <libxml/tree.h>
int threadfunc(void *arg) {
xmlBufferPtr crashTest=NULL;
fprintf(stderr,"Crash test in thread\n");
crashTest=xmlBufferCreate(); // <------------ !!! Crash, access
violation !!!
fprintf(stderr,"alive?\n");
}
int main(int argc, char **argv) {
int rc;
xmlBufferPtr crashTest=NULL;
fprintf(stderr,"Starting thread crash with libxml?\n");
crashTest=xmlBufferCreate();
fprintf(stderr,"no crash in main thread\n");
if ((rc = _beginthread(threadfunc, 0,NULL))==-1) {
fprintf(stderr,"Thread creation error\n");
exit(1);
}
while (1==1) ;
}
The stack is here :
-------------------
'test.exe': Loaded
'D:\Philippe\Atelier\pertimm\ogmios\build\debug\bin\test.exe', Symbols
loaded.
'test.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll'
'test.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll'
'test.exe': Loaded
'D:\Philippe\Atelier\pertimm\ogmios\build\debug\bin\libxml2.dll',
Symbols loaded.
First-chance exception at 0x7c928fea in test.exe: 0xC0000005: Access
violation writing location 0x00000010.
Unhandled exception at 0x7c928fea in test.exe: 0xC0000005: Access
violation writing location 0x00000010.
The program '[2864] test.exe: Native' has exited with code 0 (0x0).
The crash occurs in code libxml2/threads.c :
--------------------------------------------
if (cleanup_helpers_head !=NULL) {
cleanup_helpers_head->prev=p;
}
---
I'm using a self compiled libxml2.7.1, with this option : cscript
configure.js iconv=no
-------------------------------------------------------------------------------------
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
libxml2 version: 2.7.1
Created Makefile.
Created config.h.
XML processor configuration
---------------------------
Trio: no
Thread safety: native
FTP client: yes
HTTP client: yes
HTML processor: yes
C14N support: yes
Catalog support: yes
DocBook support: yes
XPath support: yes
XPointer support: yes
XInclude support: yes
iconv support: no
iso8859x support: no
zlib support: no
Debugging module: yes
Memory debugging: no
Runtime debugging: no
Regexp support: yes
Module support: yes
Tree support: yes
Reader support: yes
Writer support: yes
Walker support: yes
Pattern support: yes
Push support: yes
Validation support: yes
SAX1 support: yes
Legacy support: yes
Output support: yes
XML Schema support: yes
Schematron support: yes
Python bindings: no
Win32 build configuration
-------------------------
Compiler: msvc
C-Runtime option: /MD
Embed Manifest: no
Debug symbols: no
Static xmllint: no
Install prefix: .
Put tools in: $(PREFIX)\bin
Put headers in: $(PREFIX)\include
Put static libs in: $(PREFIX)\lib
Put shared libs in: $(PREFIX)\lib
Include path: .
Lib path: .
------------------------------------------
Compiler : Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
15.00.21022.08 for 80x86
Crash programm is compiled with options : /W3 /O2 /MD
Regards
Philippe
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
xml gnome org
http://mail.gnome.org/mailman/listinfo/xml
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]