DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=37857>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=37857 Summary: AclMethod tries to access nodestore with an incomplete slideToken Product: Slide Version: 2.1 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P3 Component: WebDAV Server AssignedTo: [email protected] ReportedBy: [EMAIL PROTECTED] I'm using Sybase 15.0 for my node store, and I found that it deadlocks when I try to create a user account and then give that user account permissions in one external (JBoss JCA) transaction. I tracked the bug down to AclMethod.java:234. First, AclMethod.parseRequest is called. At this point, the slideToken does not yet know about any external transactions which may be running. (That happens later, in AbstractWebdavMethod.run.) The parseRequest method calls createNodePermissionList, which then calls createActionUri, which calls structure.retrieve. This last call then takes the incomplete slideToken object, and tries to retrieve something from the node store database. Since it cannot join the existing transaction, it tries to request an exclusive row-level lock, which Sybase is already holding, and blocks forever. I can switch isolation level down to REPEATABLE_READ in Domain.xml, which does solve the problem, but that sounds wrong. It seems to me that a WebDAV method which ignores the fact that it's running inside a transaction is doing the wrong thing. MySQL does not deadlock here, so it's probably doing a dirty read in spite of the SERIALIZABLE isolation level setting. What exactly is the right thing to do? I'll be happy to implement a fix if anyone can suggest a good approach. A nasty approach would be to grab the transaction information from the header and apply changes to the slideToken before the structure.retrieve call, but that would amount to copying code from AbstractWebdavMethod.run. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
