To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=101278





------- Additional comments from [email protected] Thu Jul 16 08:48:13 +0000 
2009 -------


Setup to reproduce: 

Run the smoketest until it crashes. Then OOo will not be uninstalled and resider
in /tmp/OpenOffice. Or can run dmake noremove=1 in smoketestoo_native. (I didn't
try the latter). The smoketest will have several Basic macros installed in
OOo. Open the macro dialog and run StartTestWithDefaultOptions. This can be
repeated until the error occurs.

In order to debug change the line in the soffice script which starts the
soffice.
- "$sd_prog/$sd_binary" "$@" &
+ gdb "$sd_prog/$sd_binary" "$@"


__xmlParserInputBufferCreateFilename (
    URI=0x7f1449b9eb58
"/tmp/OpenOffice/UserInstallation/user/config/javasettings_Linux_X86_64.xml",
    enc=XML_CHAR_ENCODING_NONE) at xmlIO.c:2408
2408                if (((z_stream *)context)->avail_in > 4) {
(gdb) where
#0  __xmlParserInputBufferCreateFilename (
    URI=0x7f1449b9eb58
"/tmp/OpenOffice/UserInstallation/user/config/javasettings_Linux_X86_64.xml",
    enc=XML_CHAR_ENCODING_NONE) at xmlIO.c:2408
#1  0x00007f1441bbcdbb in xmlNewInputFromFile__internal_alias 
(ctxt=0x7f14280caeb8,
    filename=0x7f1449b9eb58
"/tmp/OpenOffice/UserInstallation/user/config/javasettings_Linux_X86_64.xml")
    at parserInternals.c:1462
#2  0x00007f1441bbfab4 in xmlCreateURLParserCtxt__internal_alias (
    filename=0x7f1449b9eb58
"/tmp/OpenOffice/UserInstallation/user/config/javasettings_Linux_X86_64.xml",
    options=0) at parser.c:12308
#3  0x00007f1441bd53cd in xmlSAXParseFileWithData__internal_alias (sax=0x0,
    filename=0x7f1449b9eb58
"/tmp/OpenOffice/UserInstallation/user/config/javasettings_Linux_X86_64.xml",
    recovery=0, data=0x0) at parser.c:12368
#4  0x00007f1444a98921 in jfw::NodeJava::prepareSettingsDocument
    (this=0x7fff51d56a20)


context in non-null, however accessing the member avail_in will bring a message
in gdb, telling that this memory cannot be accessed.

context will be obtained by

for (i = xmlInputCallbackNr - 1;i >= 0;i--) {
    if ((xmlInputCallbackTable[i].matchcallback != NULL) &&
        (xmlInputCallbackTable[i].matchcallback(URI) != 0)) {
        context = xmlInputCallbackTable[i].opencallback(URI);
        if (context != NULL) {
            break;
        }
    }
}

As it happens opencallback is xmlGzfileOpen (xmlIO.c in libxml2).

See also xmlRegisterDefaultInputCallbacks(void) where the callbacks are
registered in a determined way.

xmlGzfileOpen calls xmlGzfileOpen_real where eventually gzdopen is called.

static void *
xmlGzfileOpen_real (const char *filename) {
    const char *path = NULL;
    gzFile fd;

    if (!strcmp(filename, "-")) {
        fd = gzdopen(dup(0), "rb");
        return((void *) fd);
    }

gzdopen returns then a pointer which represents the context.  So the conclusion
is that something goes wrong with libz.so which is used from the system. In this
case its a libz.so.1.2.3.3. Changing this lib against one from a different
system did not help. The other library had the same version but was different in
size.

If libxml2 is build without using libz then the gzdopen function is not used of
course. This can be achieved by adding the configure switch --with-zlib=no in
libxml2/makefile.mk.

Using the libxml2 without libz made that I could not reproduce the crash anymore
by running the smoketest.








---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to