WE HAVE SUNSET THIS LISTSERV - Join us at collectionspace@lyrasislists.org
View all threadsHi all,
I want to share some notes with other deployers about an easy to miss
mistake I recently came across.
I am currently developing a new procedure and for the life of me
couldn't understand why nuxeo wouldn't even loading this new code.
Nuxeo would begin with the normal permission and account maintenance
but suddenly stop when it came to creating/loading tenants. Of the
hundreds of lines of error messages returned I'd see a few mentions of
Locationitem, which was odd since I neither used the location
authority in my procedure nor even touched the location authority
code. After scouring everything I wrote, checking against other core
code, and doing some heavy diff comparisons, I went to get some help
from the community. Aron was very generous with his time and helped me
troubleshoot the obvious and not so obvious reasons behind the error
messages. On a whim Aron suggested checking for field name conflicts.
And that got me thinking, what is it about the location authority is
causing this issue (or at least was a major contributor, if not
indirect), and then after a little sleuthing I realized the name one
of the repeatable groups in my new procedure was identical to the name
of a repeatable group within the location authority! A quick rename of
the offending field group in the xsds and a rebuild fixed the issue
that was preventing nuxeo from loading with my new procedure. All
along, it was a naming conflict.
So keep this reminder in your arsenal of debugging tips when you come
across a perplexing nuxeo deployment issue and the obvious debugging
techniques don't work.
The vague error message referring to the location authority:
2012-10-17 15:40:54,053 ERROR [main]
[org.apache.geronimo.connector.outbound.MCFConnectionInterceptor:57]
Error occurred creating ManagedConnection for
org.apache.geronimo.connector.outbound.ConnectionInfo@ccfe441
org.nuxeo.ecm.core.storage.StorageException: Error initializing
schemas for document type 'Locationitem'
at org.nuxeo.ecm.core.storage.sql.Model.initModels(Model.java:1113)
at org.nuxeo.ecm.core.storage.sql.Model.<init>(Model.java:396)
at org.nuxeo.ecm.core.storage.sql.RepositoryImpl.getConnection(RepositoryImpl.java:363)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionFactoryImpl.getConnection(ManagedConnectionFactoryImpl.java:313)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:104)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionFactoryImpl.createManagedConnection(ManagedConnectionFactoryImpl.java:191)
...
The full log:
https://gist.github.com/3908051#L532
p.s. My understanding of this issue is since the two repeatable groups
had identical names that nuxeo couldn't/wouldn't get the underlying
DB, postgres, to create a new table for both groups, even though in
different procedures, since the tables created would have been given
identical names, and this ultimately ended the entire tenant creation
process. Repeatable groups, I believe, don't have a common
procedural-based prefix added to the table name, whereas non-repeating
field types do have this shared naming convention. Clarification would
be appreciated in case I am missing part of the explanation.
Thanks, Jesse, for this writeup!
On a whim Aron suggested checking for field name conflicts.
Perhaps mostly a whim :-), but also Jesse and I were both looking at
error messages that suggested an issue with Nuxeo document types and
their constituent schemas, and these messages, in particular,
mentioned 'propertyPaths' issues (i.e. including issues related to
hierarchy and/or naming) in the relevant schema, or in another,
conflicting schema:
[16:47] <aronr> jmartinezmmi: thanks! Am wondering if this ' cause'
might be significant, from the initial
org.nuxeo.ecm.core.storage.StorageException: Error initializing
schemas for document type 'Locationitem' stack trace:
[16:47] <aronr> jmartinezmmi: Caused by: java.lang.NullPointerException
[16:47] <aronr> at
org.nuxeo.ecm.core.storage.sql.Model.inferTypePropertyPaths(Model.java:660)
[16:47] <aronr> at
org.nuxeo.ecm.core.storage.sql.Model.inferTypePropertyPaths(Model.java:650)
[16:47] <aronr> at
org.nuxeo.ecm.core.storage.sql.Model.inferSchemaPropertyPaths(Model.java:590)
[16:47] <aronr> at
org.nuxeo.ecm.core.storage.sql.Model.inferTypePropertyPaths(Model.java:577)
[16:47] <aronr> at
org.nuxeo.ecm.core.storage.sql.Model.initModels(Model.java:1111)
Appending this in case anyone encounters this again ...
Aron
On Thu, Oct 18, 2012 at 7:48 AM, Jesse Martinez
jmartinez@movingimage.us wrote:
Hi all,
I want to share some notes with other deployers about an easy to miss
mistake I recently came across.
I am currently developing a new procedure and for the life of me
couldn't understand why nuxeo wouldn't even loading this new code.
Nuxeo would begin with the normal permission and account maintenance
but suddenly stop when it came to creating/loading tenants. Of the
hundreds of lines of error messages returned I'd see a few mentions of
Locationitem, which was odd since I neither used the location
authority in my procedure nor even touched the location authority
code. After scouring everything I wrote, checking against other core
code, and doing some heavy diff comparisons, I went to get some help
from the community. Aron was very generous with his time and helped me
troubleshoot the obvious and not so obvious reasons behind the error
messages. On a whim Aron suggested checking for field name conflicts.
And that got me thinking, what is it about the location authority is
causing this issue (or at least was a major contributor, if not
indirect), and then after a little sleuthing I realized the name one
of the repeatable groups in my new procedure was identical to the name
of a repeatable group within the location authority! A quick rename of
the offending field group in the xsds and a rebuild fixed the issue
that was preventing nuxeo from loading with my new procedure. All
along, it was a naming conflict.
So keep this reminder in your arsenal of debugging tips when you come
across a perplexing nuxeo deployment issue and the obvious debugging
techniques don't work.
The vague error message referring to the location authority:
2012-10-17 15:40:54,053 ERROR [main]
[org.apache.geronimo.connector.outbound.MCFConnectionInterceptor:57]
Error occurred creating ManagedConnection for
org.apache.geronimo.connector.outbound.ConnectionInfo@ccfe441
org.nuxeo.ecm.core.storage.StorageException: Error initializing
schemas for document type 'Locationitem'
at org.nuxeo.ecm.core.storage.sql.Model.initModels(Model.java:1113)
at org.nuxeo.ecm.core.storage.sql.Model.<init>(Model.java:396)
at org.nuxeo.ecm.core.storage.sql.RepositoryImpl.getConnection(RepositoryImpl.java:363)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionFactoryImpl.getConnection(ManagedConnectionFactoryImpl.java:313)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:104)
at org.nuxeo.ecm.core.storage.sql.ra.ManagedConnectionFactoryImpl.createManagedConnection(ManagedConnectionFactoryImpl.java:191)
...
The full log:
https://gist.github.com/3908051#L532
p.s. My understanding of this issue is since the two repeatable groups
had identical names that nuxeo couldn't/wouldn't get the underlying
DB, postgres, to create a new table for both groups, even though in
different procedures, since the tables created would have been given
identical names, and this ultimately ended the entire tenant creation
process. Repeatable groups, I believe, don't have a common
procedural-based prefix added to the table name, whereas non-repeating
field types do have this shared naming convention. Clarification would
be appreciated in case I am missing part of the explanation.
Talk mailing list
Talk@lists.collectionspace.org
http://lists.collectionspace.org/mailman/listinfo/talk_lists.collectionspace.org