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
@salmart-dev salmart-dev added 4. to release Ready to be released and/or waiting for tests to finish and removed 3. to review Waiting for reviews labels Nov 4, 2025
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

4 participants