Skip to content

Conversation

@salmart-dev
Copy link
Contributor

@salmart-dev salmart-dev commented Oct 27, 2025

Summary

In PaginatePlugin, when using Redis, we are serializing objects coming from Sabre/Dav. This results in a loss of information that causes the bug.

Several approaches have been implemented and considered, but they have each different drawbacks:

  • Custom serializer (Fix missing collection type in paginated requests #53725), resulted to be very complex and possibly hard to maintain.
  • JsonSerializable: many files to adapt, especially in Sabre/Dav and its satellite projects, assumes that jsonSerialize won't be used for any other reason other than pagination for Nextcloud, since this requires serializing in a specific format.
  • Pagination in Sabre/Dav: would be the cleanest and most efficient method, but unfortunately NC's code is very optimized to eager load collections, and not a collection of nodes. Implementing this, completely voids pre-loading (since we load N items per page) causing ~26x more queries.

TODO

  • Test that usage with APCu is not impaired

Checklist

@salmart-dev salmart-dev self-assigned this Oct 27, 2025
@salmart-dev salmart-dev force-pushed the cacheXmlPaginationResponse branch 2 times, most recently from aa1792b to 1593279 Compare October 28, 2025 09:42
@salmart-dev salmart-dev added bug 3. to review Waiting for reviews labels Oct 28, 2025
@salmart-dev salmart-dev marked this pull request as ready for review October 28, 2025 09:51
@salmart-dev salmart-dev requested a review from a team as a code owner October 28, 2025 09:51
@salmart-dev salmart-dev requested review from Altahrim, ArtificialOwl, leftybournes and yemkareems and removed request for a team October 28, 2025 09:51
@salmart-dev salmart-dev force-pushed the cacheXmlPaginationResponse branch from 1593279 to 6c96958 Compare October 28, 2025 15:58
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
@salmart-dev salmart-dev force-pushed the cacheXmlPaginationResponse branch from 6c96958 to 36d515d Compare November 4, 2025 08:28
@salmart-dev
Copy link
Contributor Author

/backport to stable32

@salmart-dev
Copy link
Contributor Author

/backport to stable31

@salmart-dev salmart-dev enabled auto-merge November 4, 2025 09:33
@Altahrim Altahrim disabled auto-merge November 4, 2025 09:52
@Altahrim Altahrim merged commit df8d838 into master Nov 4, 2025
232 of 244 checks passed
@Altahrim Altahrim deleted the cacheXmlPaginationResponse branch November 4, 2025 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4. to release Ready to be released and/or waiting for tests to finish bug feature: dav

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: DAV missing collection type in paginated PROPFIND requests

3 participants