Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
Z zodbtools
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 4
    • Merge requests 4
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Commits
Collapse sidebar
  • nexedi
  • zodbtools
  • Merge requests
  • !33

Open
Created Mar 22, 2025 by Jérome Perrin@jeromeOwner
  • Report abuse
Report abuse

zodb catobj: new subcommand to print an object state from its oid

  • Overview 14
  • Commits 7
  • Changes 206

While debugging the cause of ConflictError, for which the error is always something like:

 ConflictError: database conflict error (oid 0x0144966f, class BTrees.OIBTree.OIBucket, serial this txn started with 0x03ff889405753100 2025-03-21 03:32:01.279167, serial currently committed 0x03ff8895bd7300ee 2025-03-21 03:33:44.402164)

seeing the content of the object on which there is a conflict ( 0x0144966f in that example) usually is enough to guess what happened. This new command helps for this use case.

Because loading the actual objects needs to be able to import the module, which can be complex, like in the case of ERP5 dynamic classes and also sometimes needs to have monkey patches applied before trying to load the state, like Products.ERP5Type.patches.DateTimePatch too be able to load a DateTime saved by ERP5, the approach here is to load dummy objects that are enough to print the state.

Edited Apr 19, 2025 by Jérome Perrin
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: feat/zodbshow
GitLab Nexedi Edition | About GitLab | About Nexedi | 沪ICP备2021021310号-2 | 沪ICP备2021021310号-7