Hi Scott and Chris,
Thanks very much for your help. I'll follow your full procedure and play it
safe.
I'll probe the cause a bit more too and see if I can pinpoint it for a bug
report. We've certainly attempted ingests with foxml missing namespace
declarations before, or with namespaces declared in the foxml but not in an
inline datastream. Fedora has always failed the ingest predictably and reported
the problem. I haven't seen this kind of database inconsistency before. So I'll
let you know what I find.
Thanks again very much,
Bill
On Oct 14, 2010, at 1:56 PM, Chris Wilper wrote:
> Hi Bill,
>
> Your approach to fixing the problem sounds fine. If it's nowhere else
> in the db, removing it from the one table it's in and off disk will
> repair the inconsistency.
>
> It's hard to say how it got in that state to begin with. But the xml
> validation exception seems odd, given the chunk of xml you posted --
> Fedora shouldn't care what the URI of the namespace is -- only that
> it's bound to a well-formed URI, which it looks like it is. Perhaps
> there are other bits of XML in the object where the "ead" QName isn't
> bound to a namespace? If it doesn't look like that's the case, can
> you submit a bug report and a attach the whole foxml so it can be
> reproduced?
>
> Thanks,
> Chris
>
> On Thu, Oct 14, 2010 at 1:26 PM, Bill Parod <bill-pa...@northwestern.edu>
> wrote:
>> We have an object that is in a corrupted state. The object is found in the
>> objectPaths table but not in doFields. Also its foxml won't parse,
>> apparently because it contains a namespace reference which is unresolved,
>> bound to a urn. I'll include some detail below. I'm inclined to 'fix' this
>> problem by deleting the specific record in the objectPaths table and
>> deleting its foxml file in the fedora data subdirectory. Is this a bad idea?
>> Could there be side effects to this that I'm not considering?
>> Thanks very much in advance!
>> - Bill
>>
>> Here's a rundown of the object's mysql database profile.
>> This object, having pid inu:inm-ead-0001 is:
>> not in datastreamPaths
>> not in dcDates
>> not in doFields
>> not in doRegistry
>> but is in objectPaths:
>> mysql> select * from objectPaths where token like 'inu:inm-ead%';
>> +-----------+------------------+------------------------------------------------------------------------+
>> | tokenDbID | token | path
>> |
>> +-----------+------------------+------------------------------------------------------------------------+
>> | 437940 | inu:inm-ead-0001 |
>> /farchive1/fedorastorage/data/objects/2010/1014/10/37/inu_inm-ead-0001 |
>> +-----------+------------------+------------------------------------------------------------------------+
>>
>> Searches don't find it:
>> fedora/search?query=pid~inu:inm-ead-0001&pid=true&maxResults=10&xml=true
>> <result> <resultList></resultList></result>
>> But references to the default dissemination return auth failure rather than
>> not found. I'm guessing this is because its attempting to read the object's
>> foxml, but it doesn't parse and so can't obtain its policy, so denies
>> access.
>>
>> fedora/get/inu:inm-ead-0001:
>>
>> 403 Forbidden
>>
>> Authorization failed
>>
>> Doing a viewItemIndex shows the root of the problem:
>> fedora/get/inu:inm-ead-0001/fedora-system:3/viewItemIndex
>>
>> 500 Internal Server Error
>>
>> FOXML IO stream was bad : The prefix "ead" for element "ead:unitid" is not
>> bound.
>> ________________________________
>>
>> fedora.server.errors.ObjectIntegrityException: FOXML IO stream was bad : The
>> prefix "ead" for element "ead:unitid" is not bound.
>> at
>> fedora.server.storage.translation.FOXMLDODeserializer.deserialize(FOXMLDODeserializer.java:250)
>> at
>> fedora.server.storage.translation.DOTranslatorImpl.deserialize(DOTranslatorImpl.java:76)
>> at
>> fedora.server.storage.translation.DOTranslatorModule.deserialize(DOTranslatorModule.java:127)
>> at fedora.server.storage.SimpleDOReader.(SimpleDOReader.java:92)
>> at
>> fedora.server.storage.DefaultDOManager.getReader(DefaultDOManager.java:659)
>> at
>> fedora.server.access.DefaultAccess.getDissemination(DefaultAccess.java:223)
>> at
>> fedora.server.access.FedoraAccessServlet.getDissemination(FedoraAccessServlet.java:730)
>> at
>> fedora.server.access.FedoraAccessServlet.doGet(FedoraAccessServlet.java:440)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>> at
>> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>> at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>> at
>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>> at
>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>> at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>> at java.lang.Thread.run(Thread.java:595)
>>
>>
>> Here's an example of what I believe is the offending foxml
>> <ead:unitid xmlns:ead="urn:isbn:1-931666-22-9">autogend1e275</ead:unitid>
>> Thanks,
>>
>> Bill Parod
>>
>> Library Technology Division - Enterprise Systems
>> Northwestern University Library
>> bill-pa...@northwestern.edu
>> 847 491 5368
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Beautiful is writing same markup. Internet Explorer 9 supports
>> standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
>> Spend less time writing and rewriting code and more time creating great
>> experiences on the web. Be a part of the beta today.
>> http://p.sf.net/sfu/beautyoftheweb
>> _______________________________________________
>> Fedora-commons-users mailing list
>> Fedora-commons-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>>
>>
>
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
> Spend less time writing and rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Fedora-commons-users mailing list
> Fedora-commons-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
Bill Parod
Library Technology Division - Enterprise Systems
Northwestern University Library
bill-pa...@northwestern.edu
847 491 5368
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Fedora-commons-users mailing list
Fedora-commons-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users