You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2007/06/22 16:36:27 UTC

[jira] Closed: (HARMONY-3547) [drlvm][classloader] segfault on classloading due to use of alloca blowing the stack

     [ https://issues.apache.org/jira/browse/HARMONY-3547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky closed HARMONY-3547.
--------------------------------------


VERIFIED

> [drlvm][classloader] segfault on classloading due to use of alloca blowing the stack 
> -------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3547
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3547
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: linux, x86_64 both "latest" of Apr 1 and svn head built here.
>            Reporter: Santiago Gala
>            Assignee: Gregory Shimansky
>         Attachments: H3547.patch, H3547.patch, harmony-alloca-stack-overflow.patch
>
>
> Running eclipse-3.2, all goes well, until it tries to index the documentation. Then I get, after a while, the following dump:
> SIGSEGV in VM code.
> Stack trace:
>         0: BootstrapClassLoader::LoadFromJarFile(JarFile*, char const*, String const*, bool*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1833)
>         1: BootstrapClassLoader::LoadFromFile(String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1743)
>         2: BootstrapClassLoader::DoLoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1535)
>         3: ClassLoader::LoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1490)
>         4: ClassLoader::LoadVerifyAndPrepareClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:359)
>         5: Class::load_ancestors(Global_Env*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Class.cpp:273)
>         6: ClassLoader::DefineClass(Global_Env*, char const*, unsigned char*, unsigned int, unsigned int, String const**) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:309)
>         7: BootstrapClassLoader::LoadFromJarFile(JarFile*, char const*, String const*, bool*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1843)
>         8: BootstrapClassLoader::LoadFromFile(String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1743)
>         9: BootstrapClassLoader::DoLoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1535)
>         10: ClassLoader::LoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1490)
>         11: ClassLoader::LoadVerifyAndPrepareClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:359)
>         12: Class::load_ancestors(Global_Env*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Class.cpp:273)
>         13: ClassLoader::DefineClass(Global_Env*, char const*, unsigned char*, unsigned int, unsigned int, String const**) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:309)
>         14: BootstrapClassLoader::LoadFromJarFile(JarFile*, char const*, String const*, bool*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1843)
>         15: BootstrapClassLoader::LoadFromFile(String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1743)
>         16: BootstrapClassLoader::DoLoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1535)
>         17: ClassLoader::LoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1490)
>         18: ClassLoader::LoadVerifyAndPrepareClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:359)
>         19: Class::load_ancestors(Global_Env*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Class.cpp:273)
>         20: ClassLoader::DefineClass(Global_Env*, char const*, unsigned char*, unsigned int, unsigned int, String const**) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:309)
>         21: BootstrapClassLoader::LoadFromJarFile(JarFile*, char const*, String const*, bool*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1843)
>         22: BootstrapClassLoader::LoadFromFile(String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1743)
>         23: BootstrapClassLoader::DoLoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1535)
>         24: ClassLoader::LoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1490)
>         25: ClassLoader::LoadVerifyAndPrepareClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:359)
>         26: Class::load_ancestors(Global_Env*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Class.cpp:273)
>         27: ClassLoader::DefineClass(Global_Env*, char const*, unsigned char*, unsigned int, unsigned int, String const**) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:309)
>         28: BootstrapClassLoader::LoadFromJarFile(JarFile*, char const*, String const*, bool*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1843)
>         29: BootstrapClassLoader::LoadFromFile(String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1743)
>         30: BootstrapClassLoader::DoLoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1535)
>         31: ClassLoader::LoadClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:1490)
>         32: ClassLoader::LoadVerifyAndPrepareClass(Global_Env*, String const*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/classloader.cpp:359)
>         33: Class::_resolve_class(Global_Env*, unsigned int) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Resolve.cpp:167)
>         34: resolve_class (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/Resolve.cpp:914)
>         35: Jitrino::Jet::Compiler::handle_ik_obj(Jitrino::Jet::JInst const&) (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/bcproc.cpp:581)
>         36: Jitrino::Jet::Compiler::handle_inst() (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/bcproc.cpp:71)
>         37: Jitrino::Jet::Compiler::comp_gen_insts(unsigned int, unsigned int, unsigned int) (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/compiler.cpp:1026)
>         38: Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/compiler.cpp:818)
>         39: Jitrino::Jet::Compiler::compile(void*, Method*, OpenMethodExecutionParams const&) (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/compiler.cpp:393)
>         40: Jitrino::Jet::compile_with_params(void*, void*, Method*, OpenMethodExecutionParams) (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/jet/jet.cpp:523)
>         41: JIT_compile_method_with_params (/home/sgala/newcode/harmony/working_vm/vm/jitrino/src/vm/drl/DrlJITInterface.cpp:274)
>         42: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
>         43: compile_do_compilation_jit(Method*, JIT*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/jit/compile.cpp:657)
>         44: vm_compile_method (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2487)
>         45: DrlEMImpl::compileMethod(Method*) (/home/sgala/newcode/harmony/working_vm/vm/em/src/DrlEMImpl.cpp:570)
>         46: CompileMethod (/home/sgala/newcode/harmony/working_vm/vm/em/src/em_intf.cpp:50)
>         47: compile_do_compilation (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/jit/compile.cpp:770)
>         48: compile_me(Method*) (/home/sgala/newcode/harmony/working_vm/vm/vmcore/src/jit/compile.cpp:790)
>         49: ?? (??:-1)
>         50: org/apache/xalan/xsltc/trax/TransformerImpl.transform(Ljavax/xml/transform/Source;Lorg/apache/xml/serializer/SerializationHandler;Ljava/lang/String;)V (TransformerImpl.java:628)
>         51: org/apache/xalan/xsltc/trax/TransformerImpl.transform(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V (TransformerImpl.java:301)
>         52: org/eclipse/help/internal/xhtml/UATransformManager.convertToString(Lorg/w3c/dom/Document;)Ljava/lang/String; (UATransformManager.java:75)
>         53: org/eclipse/help/internal/xhtml/UATransformManager.getAsInputStream(Lorg/w3c/dom/Document;)Ljava/io/InputStream; (UATransformManager.java:91)
>         54: org/eclipse/help/internal/DynamicContentProducer.openXHTMLFromPlugin(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/io/InputStream; (DynamicContentProducer.java:124)
>         55: org/eclipse/help/internal/DynamicContentProducer.getInputStream(Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;)Ljava/io/InputStream; (DynamicContentProducer.java:53)
>         56: org/eclipse/help/internal/util/ResourceLocator.openFromProducer(Lorg/osgi/framework/Bundle;Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream; (ResourceLocator.java:227)
>         57: org/eclipse/help/internal/protocols/HelpURLConnection.getInputStream()Ljava/io/InputStream; (HelpURLConnection.java:113)
>         58: java/net/URL.openStream()Ljava/io/InputStream; (URL.java:664)
>         59: org/eclipse/help/internal/search/HTMLDocParser.openDocument(Ljava/net/URL;)V (HTMLDocParser.java:62)
>         60: org/eclipse/help/internal/search/HTMLSearchParticipant.addDocument(Lorg/eclipse/help/search/ISearchIndex;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;Lorg/apache/lucene/document/Document;)Lorg/eclipse/core/runtime/IStatus; (HTMLSearchParticipant.java:53)
>         61: org/eclipse/help/internal/search/SearchIndex.addDocument(Ljava/lang/String;Ljava/net/URL;)Lorg/eclipse/core/runtime/IStatus; (SearchIndex.java:215)
>         62: org/eclipse/help/internal/search/IndexingOperation.addDocuments(Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/util/Collection;Z)V (IndexingOperation.java:279)
>         63: org/eclipse/help/internal/search/IndexingOperation.addNewDocuments(Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/util/Collection;Z)Ljava/util/Map; (IndexingOperation.java:175)
>         64: org/eclipse/help/internal/search/IndexingOperation.execute(Lorg/eclipse/core/runtime/IProgressMonitor;)V (IndexingOperation.java:105)
>         65: org/eclipse/help/internal/search/SearchManager.updateIndex(Lorg/eclipse/core/runtime/IProgressMonitor;Lorg/eclipse/help/internal/search/SearchIndex;Lorg/eclipse/help/internal/search/ProgressDistributor;)V (SearchManager.java:883)
>         66: org/eclipse/help/internal/search/SearchManager.ensureIndexUpdated(Lorg/eclipse/core/runtime/IProgressMonitor;Lorg/eclipse/help/internal/search/SearchIndexWithIndexingProgress;)V (SearchManager.java:847)
>         67: org/eclipse/help/internal/search/federated/IndexerJob.run(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus; (IndexerJob.java:27)
>         68: org/eclipse/core/internal/jobs/Worker.run()V (Worker.java:58)
>         69: java/lang/Thread.runImpl()V (Thread.java:672)
> <end of stack trace>
> As seen in slot 50, xsltc is generating code for a XSL transformation, and giving it to the interpreter. The crash happens after Jitrino tries to load a class in the bootstrap loader.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.