Skip to main content

Overview

Verify a ZODB by iterating and loading all records. Problems are reported in detail. A debugger is provided, together with decompilation information.

zodbverify is available as a standalone script and as addon for plone.recipe.zope2instance.

Usage

Script

The verification runs on a plain ZODB file. The Zope application is not started.

Run i.e.:

bin/zodbverify -f var/filestorage/Data.fs

Usage:

zodbverify [-h] -f ZODBFILE [-D] [-o OID]

Verifies that all records in the database can be loaded.

optional arguments:
  -h, --help            show this help message and exit
  -f ZODBFILE, --zodbfile ZODBFILE
                        Path to file-storage
  -D, --debug           pause to debug broken pickles
  -o OID, --oid OID     oid to inspect

plone.recipe.zope2instance integration

The verification runs in the context of the initialized Zope application.

Usage:

./bin/instance zodbverify [-h] [-D] [-o OID]

Verifies that all records in the database can be loaded.

optional arguments:
  -h, --help         show this help message and exit
  -D, --debug        pause to debug broken pickles
  -o OID, --oid OID  oid to inspect

Inspecting a single oid

The output of zodbverify gives you a list of all problems and the oid that are affected.

To inspect a single oid in detail you can pass one of these to zodbverify:

./bin/instance zodbverify -o 0x2e929f

This will output the pickle and the error for that oid.

By also adding the debug-switch you will get two pdb’s while the script runs:

./bin/instance zodbverify -o 0x2e929f -D

2020-03-11 10:40:24,972 INFO    [Zope:45][MainThread] Ready to handle requests
The object is 'obj'
The Zope instance is 'app'
[4] > /Users/pbauer/workspace/dipf-intranet/src-mrd/zodbverify/src/zodbverify/verify_oid.py(52)verify_oid()
-> pickle, state = storage.load(oid)

In the first pdb you have the object for the oid as obj and the zope instance as app. Before the second pdb the pickle will be disassembled the same way as when using zodbverify to pause to debug broken pickles without passing a oid.

Source Code

Contributors please read the document Process for Plone core’s development

Sources are at the Plone code repository hosted at Github.

Changelog

1.2.1 (2025-12-09)

Bug fixes:

  • Remove empty name namespace_packages setting from our setup.cfg. [maurits] (#3928)

1.2.0 (2022-07-06)

New features:

1.1.0 (2020-04-22)

New features:

  • Show the affected oids for each error. Inspect a single oid. The idea is to run zodbverify on the whole database and from the output copy one oid and run it again to further inspect that object. [pbauer] (#6)

Bug fixes:

  • Minor packaging updates. (#1)

1.0.2 (2019-08-08)

Bug fixes:

  • Open Data.fs in read only mode. (#2)

1.0.1 (2019-05-09)

Bug fixes:

  • Fix project description. [jensens] (#1)

1.0 (2019-05-09)

New features:

  • Initial effort. Base code taken from Products.CMFPlone (created by @davisagli). Enhanced and packaged for more general Zope use. [dwt,jensens] (#1)

Metadata

Release files for zodbverify 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zodbverify 1.2.1
File Size Uploaded
zodbverify-1.2.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zodbverify 1.2.1
File Interpreter ABI Platform
zodbverify-1.2.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 30.5 kB

Release files / zodbverify-1.2.1.tar.gz

Download URL zodbverify-1.2.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6158b6b29d6bcf9ee541c5224478381016278f989e733c6735d6690daa8eea1a
BLAKE2b-256 checksum
How to use checksums
81fe17f01254e4b14c517a0e202de88bc4b4db05df4bcbc26fa940937ae373a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / zodbverify-1.2.1-py2.py3-none-any.whl

Download URL zodbverify-1.2.1-py2.py3-none-any.whl
Size 15.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6c37c2e427721073569e3eb43983f1ac1ddf2a20d64d8ff02c884a2d692752f6
BLAKE2b-256 checksum
How to use checksums
bf8f5765ceafc67c219d27c95b8b02dbda5a2e32611157fa955657fc2177d27a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page