Hi Tim,
Thanks for the reply. The data migration was (intended to be) the process you
linked to, migration to a new server. Both old and new use PostgreSQL on RHEL.
For the database, I created an empty one, created the pgcrypto extension,
populated the database with output from pg_dump on the current server, and then
ran “dspace database migrate ignored” prior to starting Tomcat. I didn’t notice
any problem with the database dump/import (not to discount the possibility I
missed it).
I can’t tell if it’s just my lack of understanding or if you missed where I
wrote that I isolated the problem to the Anonymous group specifically (in fact
that seems to be the only one triggering the error described). I’m not sure if
I’ve followed the code correctly, which led me to suspect resourcepolicy data,
so I may be way off, but I observe:
select count(*) from resourcepolicy where epersongroup_id = (select uuid from
epersongroup where eperson_group_id = 0) and action_id = 10 /*
Constants.DEFAULT_ITEM_READ */ and resource_type_id = 3 /* Constants.COLLECTION
*/ and dspace_object is null;
count
-------
33
And it looks to me like this is an inconsistency in the 5.6 database
propagated, probably as intended, through migrations (similar to the other
thread I started, https://groups.google.com/g/dspace-tech/c/K-YWS0GpRmk), eg:
select count(*) from resourcepolicy rp where rp.epersongroup_id = 0 and
rp.action_id = 10 and rp.resource_type_id = 3 and not exists(select * from
collection where collection_id = rp.resource_id);
count
-------
33
More generally, back in the 7.6.1 database:
select resource_type_id, count(*) from resourcepolicy where dspace_object is
null group by resource_type_id;
resource_type_id | count
------------------+-------
6 | 2
3 | 254
As these represent only a tiny fraction of the ~400k resourcepolicy rows I’m
guessing there should be none. If so, the question of course is how best to
reach that state, but in any case there is still a problem somewhere, so any
further suggestions would be great.
Kind regards,
Alex
From: DSpace Technical Support <[email protected]>
Sent: 09 February 2024 17:26
To: DSpace Technical Support <[email protected]>
Subject: [dspace-tech] Re: Access control -> Groups stuck "Loading"
Hi Alex,
Here's where that error occurs:
https://github.com/DSpace/DSpace/blob/dspace-7.6.1/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java#L938-L941
and it's called from here:
https://github.com/DSpace/DSpace/blob/dspace-7.6.1/dspace-api/src/main/java/org/dspace/eperson/GroupServiceImpl.java#L806
The error appears to be saying that DSpace has found a group named
"COLLECTION_[id]_ITEM_DEFAULT_READ" which does NOT seem to match with a
corresponding Collection? I.e. the "id" doesn't match the id of any Collection
in your system.
How did you go about this data migration? It almost sounds like either the
groups didn't come over properly... or it could just be that you had a bunch of
old COLLECTION_[id] style groups that were ignored in DSpace 5 but now causing
issues in DSpace 7. If it helps, we do have a migration guide which some
sites have found to be one of the easier ways to migrate from older versions of
DSpace into DSpace 7:
https://wiki.lyrasis.org/display/DSDOC7x/Migrating+DSpace+to+a+new+server
Tim
On Friday, February 9, 2024 at 8:12:39 AM UTC-6 Alex Fraser (Staff) wrote:
Hi,
Running DSpace 7.6.1 with data migrated from DSpace 5.6, logged in as an
administrator, navigating to Access control -> Groups and then accessing a
specific page appears to be stuck “Loading”. Developer Tools in the browser
shows a 500 status for
/server/api/eperson/groups/search/byMetadata?page=83&size=5&query=&embed=object
and dspace.log contains:
ERROR e83bd9a9-54f0-485c-888f-28336f741126 0b5cb60f-db73-4c0c-9e9d-9c28193b937f
org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ An exception
has occurred (status:500)
java.lang.NullPointerException: Cannot invoke
"org.dspace.content.Collection.getID()" because "collection" is null
at
org.dspace.content.CollectionServiceImpl.getDefaultReadGroupName(CollectionServiceImpl.java:939)
~[dspace-api-7.6.1.jar:7.6.1]
at
org.dspace.eperson.GroupServiceImpl.lambda$getParentObject$0(GroupServiceImpl.java:806)
~[dspace-api-7.6.1.jar:7.6.1]
at
java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[?:?]
at
java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602) ~[?:?]
at
java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
~[?:?]
at
java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
~[?:?]
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[?:?]
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
~[?:?]
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
~[?:?]
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at
java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) ~[?:?]
at
org.dspace.eperson.GroupServiceImpl.getParentObject(GroupServiceImpl.java:807)
~[dspace-api-7.6.1.jar:7.6.1]
at
org.dspace.eperson.GroupServiceImpl.getParentObject(GroupServiceImpl.java:66)
~[dspace-api-7.6.1.jar:7.6.1]
at
org.dspace.app.rest.repository.GroupParentObjectLinkRepository.getParentObject(GroupParentObjectLinkRepository.java:63)
~[classes/:7.6.1]
at
org.dspace.app.rest.repository.GroupParentObjectLinkRepository$$FastClassBySpringCGLIB$$abe50bf3.invoke(<generated>)
~[classes/:7.6.1]
(and so on)
After some experimentation I narrowed down the 500 response to the Anonymous
group, and it only happens with “embed=object”. I assume there is something
problematic with the migrated data (I don’t see the issue with a fresh
install), but I’ve been unable to work out what it could be. Any pointers in
the right direction would be gratefully received.
Thanks,
Alex
--
All messages to this mailing list should adhere to the Code of Conduct:
https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups
"DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/dspace-tech/d282488d-73f9-434c-bd47-e5a48120f534n%40googlegroups.com<https://groups.google.com/d/msgid/dspace-tech/d282488d-73f9-434c-bd47-e5a48120f534n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
All messages to this mailing list should adhere to the Code of Conduct:
https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx
---
You received this message because you are subscribed to the Google Groups
"DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dspace-tech/LO0P265MB54324F11A9CC381C7ECC43F1CB482%40LO0P265MB5432.GBRP265.PROD.OUTLOOK.COM.