Exist: [BUG]collection renaming corrupts collection over WebDAV

Created on 15 Apr 2020  Â·  14Comments  Â·  Source: eXist-db/exist

eXist Version: | 5.2.0
eXist Build: | 20200123133609
Operating System: | Linux 4.14.165-133.209.amzn2.x86_64 amd64
Java Version: | 11.0.5
Default Encoding: | UTF8
Instance ID: | exist
System CPU Load: | 0.00672646
Process CPU Load: | 0.00448430
Free Physical Memory: | 8846880768
Total Physical Memory: | 16624488448

Describe the bug
When one tries to rename a collection using WebDAV, an error is thrown and the collection gets corrupted. There is no way to delete the collection after it is corrupted and all data and sub-collections are no longer accessible.

The errors that I saw within the exist.log are:
020-04-13 04:03:55,400 [qtp1916303325-27] WARN (Descriptor.java []:116) - Giving up unable to read descriptor.xml file from classloader in package org.exist.http, eXist-db Core, version 5.2
2020-04-13 04:04:50,259 [qtp1916303325-32] WARN (TransactionManager.java [close]:409) - Transaction was not committed or aborted, auto aborting!

When I looked the reported errors in my WebDAV client application (Panic Software Transmit) are:
Delete PADPIDA2017091801T-PADPIDA2015030501F

org.xmldb.api.base.XMLDBException: Failed to invoke method removeCollection in class org.exist.xmlrpc.RpcConnection: null
Failed to invoke method removeCollection in class org.exist.xmlrpc.RpcConnection: null

ro.sync.db.b.m: org.xmldb.api.base.XMLDBException: Failed to invoke method removeCollection in class org.exist.xmlrpc.RpcConnection: null
at ro.sync.db.nxd.exist.d.d(Unknown Source)
at ro.sync.db.nxd.exist.e.ah(Unknown Source)
at ro.sync.db.nxd.d.nh(Unknown Source)
at ro.sync.db.nxd.d$3.cli(Unknown Source)
at ro.sync.db.f.z.cyp(Unknown Source)
at ro.sync.db.f.z$1.dxd(Unknown Source)
at ro.sync.ui.application.mb.run(Unknown Source)
Caused by: org.xmldb.api.base.XMLDBException: Failed to invoke method removeCollection in class org.exist.xmlrpc.RpcConnection: null
at org.exist.xmldb.RemoteCollectionManagementService.removeCollection(RemoteCollectionManagementService.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
... 7 more
Caused by: org.apache.xmlrpc.XmlRpcException: Failed to invoke method removeCollection in class org.exist.xmlrpc.RpcConnection: null
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
at org.exist.xmldb.RemoteCollectionManagementService.removeCollection(RemoteCollectionManagementService.java:138)
... 11 more

bug triage

All 14 comments

@nsincaglia Which version of Transmit?

Version 5.6.3 (149563)

@nsincaglia two issues were recently addressed in this area:

  1. https://github.com/eXist-db/exist/issues/3310
  2. https://github.com/eXist-db/exist/issues/3040

Would you be able to test your issue please with a build of 5.3.0-SNAPSHOT ?

It's not only through webdav but also through XML-RPC (I was using a native oXygen connection with the db)

Using latest version of oXygen, latest version of Java on W10 and eXist 5.2

@xatapult indeed - the issue that I fixed was in the storage layer, and so it would have affected all APIs

SO..... "webdav" is not valid in the title?

@dizzzz It might be! I am only saying that - the issue I fixed, affected all APIs. Until someone can verify that that fixed this reported issue, we can't be sure it is the same thing ;-)
Hopefully @nsincaglia and @xatapult will report their findings against 5.3.0-SNAPSHOT soon.

I think we will have time to test this in the afternoon today. Will report back as soon as we do.
Where is 5.3.0-SNAPSHOT?

I have what appears to be the same issue using eXide. (under 5.2.0, running on Debian).

I created an application collection with various subcollections as usual (modules, resources, resources/css, etc.) by copying the contents of an existing application collection (that I had created). Then I decided to change the name of application collection. Result: Collection name is changed, but child collections are lost. But they can't be re-added - the collection is corrupted. Futzing around with that collection, e.g. trying to repaste the child collections, or trying to delete the new collection, doesn't work, generating various errors and lockups in the exist-db log, and eventually crashing/locking up the server, requiring a kill -9 to stop it and restart.. This happened at least twice. (I didn't believe it the first time.) As it's a UAT / semi-production server I didn't want to mess around any more.

I was pretty surprised as renaming a collection seems like a pretty basic operation. (I had related issues trying to install new application code versions by using load-files-from-pattern, which also locked up the server... it makes me very leery of changing the application software. Is that a known issue?)

Is this issue expected to be resolved in 5.3.0?

@brianlynn1 I think so. Perhaps @xatapult @nsincaglia or @dizzzz can confirm?

@adamretter What do you want me to confirm? Yes it's a bug...

@xatapult I was looking for someone to confirm that the issue is fixed in 5.3.0-SNAPSHOT

Yes, I can confirm that this issue is resolved in 5.3.0-SNAPSHOT.NickNick Sincaglia President/FounderNueMeta, LLCDigital Media & TechnologyPhone: [email protected] http://www.nuemeta.comSkype: nsincaglia
-------- Original message --------From: Adam Retter notifications@github.com Date: 8/20/20 6:25 AM (GMT-06:00) To: eXist-db/exist exist@noreply.github.com Cc: nsincaglia nsincaglia@nuemeta.com, Mention mention@noreply.github.com Subject: Re: [eXist-db/exist] [BUG]collection renaming corrupts collection
  over WebDAV (#3371)
@xatapult I was looking for someone to confirm that the issue is fixed in 5.3.0-SNAPSHOT

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you very much!

From: nsincaglia notifications@github.com
Sent: August-20-20 8:30 AM
To: eXist-db/exist exist@noreply.github.com
Cc: brianlynn1 brian.lynn.999@gmail.com; Mention mention@noreply.github.com
Subject: Re: [eXist-db/exist] [BUG]collection renaming corrupts collection over WebDAV (#3371)

Yes, I can confirm that this issue is resolved in 5.3.0-SNAPSHOT.NickNick Sincaglia President/FounderNueMeta, LLCDigital Media & TechnologyPhone: [email protected] http://www.nuemeta.comSkype: nsincaglia
-------- Original message --------From: Adam Retter <[email protected] notifications@github.com > Date: 8/20/20 6:25 AM (GMT-06:00) To: eXist-db/exist <[email protected] exist@noreply.github.com > Cc: nsincaglia <[email protected] nsincaglia@nuemeta.com >, Mention <[email protected] mention@noreply.github.com > Subject: Re: [eXist-db/exist] [BUG]collection renaming corrupts collection
over WebDAV (#3371)
@xatapult I was looking for someone to confirm that the issue is fixed in 5.3.0-SNAPSHOT

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/eXist-db/exist/issues/3371#issuecomment-677635700 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ7ZBSWIQQP5MHV5LEBYDOTSBUJODANCNFSM4MI3KQMA . https://github.com/notifications/beacon/AJ7ZBSUIFCL4BL4ZTSE5AE3SBUJODA5CNFSM4MI3KQMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFBR6M5A.gif

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ahenket picture ahenket  Â·  4Comments

mathias-goebel picture mathias-goebel  Â·  4Comments

wolfgangmm picture wolfgangmm  Â·  3Comments

lguariento picture lguariento  Â·  5Comments

joewiz picture joewiz  Â·  3Comments