STATUS CODE: 238, 671 Occurs during a synthetic backup when the Veritas NetBackup catalog has an inconsistent or corrupted entry.

Article: 100016823
Last Published: 2021-11-02
Ratings: 0 2
Product(s): NetBackup & Alta Data Protection

Problem

STATUS CODE: 238, 671 Occurs during a synthetic backup when the Veritas NetBackup catalog has an inconsistent or corrupted entry.

Error Message

the database contains conflicting or erroneous entries(238)
query for list of component images failed(671)

Solution

Overview:
When doing a Synthetic backup, the bpdbm daemon queries the catalog DB for component full, cumulative, and incremental backups. If the database contains conflicting or erroneous entries, such as partial catalog files or no *.f files file, then the Synthetic backup will fail with a Status 238 (the database contains conflicting or erroneous entries).  

This could also happen if a synthetic full backup is started manually at the same time a traditional incremental for the same policy/client is already actively running via the NetBackup scheduler.  This situation could cause the conflicting backup image information to be used for the synthetic backup which would also eventually trigger a Status 238.

Troubleshooting:
The bperror command can be used to view thej ob details for a synthetic back up that fails with a Status 238.  Check this output to determine if it also lists the Status 671 (query for list of component images failed).

Log Files:
The /usr/openv/netbackup/logs/bpdbm/log.<date> on the master server will show.  
<2>synthesize_client_images: processing file/usr/openv/netbackup/db/images/<clientname>/1104000000/<policyname>_1104559240_FULL
<2>synthesize_client_images: Missing image <policyname>_1106010166_INCR.f todo synthetics backup query
<2>synthesize_client_images: synthetics backups matching criteria =0
<2> bpdbm: request complete:exit status 238 the database contains conflicting or erroneous entries

The /usr/openv/netbackup/logs/bpsynth/log.<date> file will show the following messages:
<16>DBImageQuery::getNextRecord: unable to receive the response to the image query,error=the database contains conflicting or erroneousentries(238)
<2>set_job_details: Done
<16>SynthJob::findImages: caught synth EXCEPTION, error=the database contains conflicting or erroneous entries(238)
<2>SynthJob::findImages: returning error code =671(SynthJob.cpp:1731)
<2>SynthJob::findImages: map now has 0entries(SynthJob.cpp:1743)
<2>SynthJob::prepare: failed to find images, error =671(SynthJob.cpp:1535)
<16>SynthJob::doStart: preparation for generating synthetic image failed, error =query for list of component imagesfailed(671)
<16>SynthJob::endJob: end bpsynth with status = query for list of component images failed(671)
<2>exitSynth: exiting with status=query for list of component images failed(671)(bpsynth.cpp:422)

Resolution:
The errors in the above examples were cause due to a missing *.f catalog DBfile used as a component backup to make up the synthetic backup.   The backup image <policyname>_1106010166_INCR was created on January 17 with a retention level of two weeks.  This image should have been expired and deleted January 31. The Synthetic back up attempt that failed with a Status 238 was run on February 1. In this case the catalog DB was the root cause of the problem.

The way the bpdbm daemon works is that it looks at all candidate backups regardless if it should have been expired and tries to use them as components of the Synthetic back up. This behaviour may change in the future. The solution for this issue was to make sure a catalog DB cleanup happens and run the consistency check prior to synthetic backups.  
This was done with the following commands.
  # bpimage -cleanup-allclients
  # bpdbm-consistency

If no catalog corruption exists, then make sure the synthetic full backup is not being started manually when other scheduled NetBackup jobs are running for the same system.  The job may be started manually by the administrator or run automatically from cron. This will create conflicting entries in the image database and cause the synthetic full to fail with these same errors and status codes.  The NetBackup scheduler should be used to schedule backups, this will prevent multiple backups of different types from being started at the same time.
 

 

Was this content helpful?