[
https://issues.apache.org/jira/browse/ACCUMULO-1321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13642042#comment-13642042
]
Keith Turner commented on ACCUMULO-1321:
----------------------------------------
I experimented with this and ran into a problem on my first try. I did the
following.
* started 1.5.0-SNAP
* placed jar containing constraint in lib/ext
* added constraint to table
* inserted data that triggered constraint and that worked
* updated constraint jar in lib/ext
* tried to insert data and that failed w/ Failed to load constraints
I took a look at the tablet server logs and saw the following :
{noformat}
2013-04-25 13:54:36,405 [vfs.AccumuloReloadingVFSClassLoader] DEBUG:
file:///home/user/workspace/accumulo-1.5/lib/ext/TC.jar created, recreating
classloader
2013-04-25 13:57:24,485 [vfs.AccumuloReloadingVFSClassLoader] DEBUG:
file:///home/user/workspace/accumulo-1.5/lib/ext/TC.jar deleted, recreating
classloader
2013-04-25 13:57:25,217 [constraints.ConstraintChecker] ERROR: Failed to load
constraints 2 java.lang.ClassFormatError: Truncated class file
java.lang.ClassFormatError: Truncated class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at
org.apache.commons.vfs2.impl.VFSClassLoader.defineClass(VFSClassLoader.java:223)
at
org.apache.commons.vfs2.impl.VFSClassLoader.findClass(VFSClassLoader.java:177)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at
org.apache.accumulo.server.constraints.ConstraintChecker.<init>(ConstraintChecker.java:63)
at
org.apache.accumulo.server.tabletserver.Tablet.checkConstraints(Tablet.java:2522)
at
org.apache.accumulo.server.tabletserver.TabletServer$6.run(TabletServer.java:3137)
at
org.apache.accumulo.server.util.time.SimpleTimer$LoggingTimerTask.run(SimpleTimer.java:42)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
{noformat}
I wonder if the code is trying to read the jar while its being written.
> Dynamic Classloader lost jars
> -----------------------------
>
> Key: ACCUMULO-1321
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1321
> Project: Accumulo
> Issue Type: Bug
> Reporter: John Vines
> Fix For: 1.5.0
>
>
> We have a table setup that uses some custom iterators. We ran an MR job
> against it without issues. We then ran the job immediately after the first
> one wrapped and 2 of my tservers errored with ClassNotFoundException, even
> though it ran just fine before.
> Unfortunately we don't have a stack trace (to see if it was breaking
> differently in the VFSClassLoader), nor a convenient way to recreate
> currently. We're working on reproducing it in order to get more information.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira