Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 189301 Details for
Bug 236256
verify-db.pl (db_verify) does not work on a little endian machine
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
cvs diffs
ds.diffs (text/plain), 18.26 KB, created by
Noriko Hosoi
on 2007-09-06 22:17:56 UTC
(
hide
)
Description:
cvs diffs
Filename:
MIME Type:
Creator:
Noriko Hosoi
Created:
2007-09-06 22:17:56 UTC
Size:
18.26 KB
patch
obsolete
>Index: Makefile.am >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.am,v >retrieving revision 1.56 >diff -t -w -U4 -r1.56 Makefile.am >--- Makefile.am 20 Aug 2007 18:33:31 -0000 1.56 >+++ Makefile.am 6 Sep 2007 21:40:03 -0000 >@@ -235,9 +235,10 @@ > ldap/admin/src/scripts/template-ns-accountstatus.pl \ > ldap/admin/src/scripts/template-ns-activate.pl \ > ldap/admin/src/scripts/template-ns-inactivate.pl \ > ldap/admin/src/scripts/template-ns-newpwpolicy.pl \ >- ldap/admin/src/scripts/template-verify-db.pl >+ ldap/admin/src/scripts/template-verify-db.pl \ >+ ldap/admin/src/scripts/template-dbverify > > init_SCRIPTS = wrappers/$(PACKAGE_NAME) > > inf_DATA = ldap/admin/src/slapd.inf \ >@@ -500,8 +501,9 @@ > ldap/servers/slapd/back-ldbm/ldbm_modrdn.c \ > ldap/servers/slapd/back-ldbm/ldbm_search.c \ > ldap/servers/slapd/back-ldbm/ldbm_unbind.c \ > ldap/servers/slapd/back-ldbm/ldif2ldbm.c \ >+ ldap/servers/slapd/back-ldbm/dbverify.c \ > ldap/servers/slapd/back-ldbm/matchrule.c \ > ldap/servers/slapd/back-ldbm/misc.c \ > ldap/servers/slapd/back-ldbm/monitor.c \ > ldap/servers/slapd/back-ldbm/nextid.c \ >Index: ldap/admin/src/scripts/template-verify-db.pl.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/template-verify-db.pl.in,v >retrieving revision 1.7 >diff -t -w -U4 -r1.7 template-verify-db.pl.in >--- ldap/admin/src/scripts/template-verify-db.pl.in 21 Mar 2007 17:42:58 -0000 1.7 >+++ ldap/admin/src/scripts/template-verify-db.pl.in 6 Sep 2007 21:40:03 -0000 >@@ -210,42 +210,35 @@ > } > } > > # Check db files by db_verify >-for (my $i = 0; "$$dbdirs[$i]" ne ""; $i++) >-{ >- opendir(DB, $$dbdirs[$i]) or die "can't opendir $$dbdirs[$i] : $!"; >- while (defined($db = readdir(DB))) >- { >- if ($db =~ /\.db/) >- { >- my $thisdb = $$dbdirs[$i] . "/" . $db; >- print "Verify $thisdb ... "; >- open(DBVERIFY, "db_verify $thisdb 2>&1 1> $NULL |"); >+open(DBVERIFY, "dbverify $thisdb 2>&1 1> $NULL |"); > sleep 1; >- my $haserr = 0; >+my $bad_index = 0; >+my $bad_id2entry = 0; > while ($l = <DBVERIFY>) > { >- if ($haserr == 0) >+ if ("$l" =~ /verify failed/) > { >- print "\n"; >+ if ("$l" =~ /id2entry.db/) >+ { >+ $bad_id2entry++; > } >- if ("$l" ne "") >+ else > { >- $haserr++; >- print "DB ERROR: $l"; >+ $bad_index++; > } > } >- close(DBVERIFY); >- if ($haserr == 0 && $? == 0) >- { >- print "Good\n"; >+ print "$l"; > } >- else >+close(DBVERIFY); >+ >+if ($bad_id2entry > 0) > { >- print "db file $db in $$dbdirs[$i] is corrupted.\n"; >+ print "Found the db was corrupted\n"; > print "Please restore your backup and recover the database.\n"; > } >- } >- } >- closedir(DB); >+elsif ($bad_index > 0) >+{ >+ print "Found the index file(s) was corrupted\n"; >+ print "Please run db2index on the corrupted index\n"; > } >Index: ldap/servers/slapd/main.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/main.c,v >retrieving revision 1.20 >diff -t -w -U4 -r1.20 main.c >--- ldap/servers/slapd/main.c 17 Aug 2007 02:12:37 -0000 1.20 >+++ ldap/servers/slapd/main.c 6 Sep 2007 21:40:03 -0000 >@@ -111,8 +111,9 @@ > static int slapd_exemode_db2index(); > static int slapd_exemode_archive2db(); > static int slapd_exemode_db2archive(); > static int slapd_exemode_upgradedb(); >+static int slapd_exemode_dbverify(); > static int slapd_exemode_dbtest(); > static int slapd_exemode_suffix2instance(); > static int slapd_debug_level_string2level( const char *s ); > static void slapd_debug_level_log( int level ); >@@ -373,18 +374,18 @@ > } else if ( strcmp( s, "refer" ) == 0 ) { > exemode = SLAPD_EXEMODE_REFERRAL; > } else if ( strcmp( s, "suffix2instance" ) == 0 ) { > exemode = SLAPD_EXEMODE_SUFFIX2INSTANCE; >- } >- else if ( strcmp( s, "upgradedb" ) == 0 ) >- { >+ } else if ( strcmp( s, "upgradedb" ) == 0 ) { > exemode = SLAPD_EXEMODE_UPGRADEDB; >+ } else if ( strcmp( s, "dbverify" ) == 0 ) { >+ exemode = SLAPD_EXEMODE_DBVERIFY; > } > else if ( exit_if_unknown ) { > fprintf( stderr, "usage: %s -D configdir " > "[ldif2db | db2ldif | archive2db " > "| db2archive | db2index | refer | suffix2instance" >- " | upgradedb] " >+ " | upgradedb | dbverify] " > "[options]\n", progname ); > exit( 1 ); > } else { > exemode = SLAPD_EXEMODE_UNKNOWN; >@@ -442,8 +443,11 @@ > break; > case SLAPD_EXEMODE_UPGRADEDB: > usagestr = "usage: %s %s%s-D configdir [-d debuglevel] [-f] -a archivedir\n"; > break; >+ case SLAPD_EXEMODE_DBVERIFY: >+ usagestr = "usage: %s %s%s-D configdir [-d debuglevel] [-n backend-instance-name]\n"; >+ break; > > default: /* SLAPD_EXEMODE_SLAPD */ > usagestr = "usage: %s %s%s-D configdir [-d debuglevel] " > "[-i pidlogfile] [-v] [-V]\n"; >@@ -480,8 +484,9 @@ > static int db2ldif_dump_replica = 0; > static int db2ldif_dump_uniqueid = 1; > static int ldif2db_generate_uniqueid = SLAPI_UNIQUEID_GENERATE_TIME_BASED; > static int ldif2db_load_state= 1; >+static int dbverify_verbose = 0; > static char *ldif2db_namespaceid = NULL; > int importexport_encrypt = 0; > static int upgradedb_force = 0; > >@@ -982,8 +987,15 @@ > > case SLAPD_EXEMODE_UPGRADEDB: > return slapd_exemode_upgradedb(); > >+ case SLAPD_EXEMODE_DBVERIFY: >+ return_value = slapd_exemode_dbverify(); >+ if (return_value == 0) >+ return return_value; >+ else >+ return 1; >+ > case SLAPD_EXEMODE_PRINTVERSION: > slapd_print_version(1); > exit(1); > } >@@ -1367,8 +1379,17 @@ > {"archive",ArgRequired,'a'}, > {"configDir",ArgRequired,'D'}, > {0,0,0}}; > >+ char *opts_dbverify = "vVfd:n:D:"; >+ struct opt_ext long_options_dbverify[] = { >+ {"version",ArgNone,'v'}, >+ {"debug",ArgRequired,'d'}, >+ {"backend",ArgRequired,'n'}, >+ {"configDir",ArgRequired,'D'}, >+ {"verbose",ArgNone,'V'}, >+ {0,0,0}}; >+ > char *opts_referral = "vd:p:r:SD:"; > struct opt_ext long_options_referral[] = { > {"version",ArgNone,'v'}, > {"debug",ArgRequired,'d'}, >@@ -1463,8 +1484,12 @@ > case SLAPD_EXEMODE_UPGRADEDB: > opts = opts_upgradedb; > long_opts = long_options_upgradedb; > break; >+ case SLAPD_EXEMODE_DBVERIFY: >+ opts = opts_dbverify; >+ long_opts = long_options_dbverify; >+ break; > default: /* SLAPD_EXEMODE_SLAPD */ > opts = opts_slapd; > long_opts = long_options_slapd; > } >@@ -1566,9 +1591,10 @@ > slapd_exemode == SLAPD_EXEMODE_DB2INDEX || > slapd_exemode == SLAPD_EXEMODE_ARCHIVE2DB) { > /* The -n argument will give the name of a backend instance. */ > cmd_line_instance_name = optarg_ext; >- } else if (slapd_exemode == SLAPD_EXEMODE_DB2LDIF) { >+ } else if (slapd_exemode == SLAPD_EXEMODE_DB2LDIF || >+ slapd_exemode == SLAPD_EXEMODE_DBVERIFY) { > char *s = slapi_ch_strdup(optarg_ext); > charray_add(&cmd_line_instance_names, s); > } else { > ldif_backend = atoi( optarg_ext ); >@@ -1725,9 +1751,13 @@ > exit( 1 ); > break; > > case 'V': >+ if ( slapd_exemode == SLAPD_EXEMODE_DBVERIFY ) { >+ dbverify_verbose = 1; >+ } else { > slapd_exemode = SLAPD_EXEMODE_PRINTVERSION; >+ } > break; > > case 'a': /* archive pathname for db */ > archive_name = optarg_ext; >@@ -2003,9 +2033,9 @@ > usage( myname, extraname ); > exit( 1 ); > } > >- /* this should be the first time this are called! if the init order >+ /* this should be the first time to be called! if the init order > * is ever changed, these lines should be changed (or erased)! > */ > mapping_tree_init(); > >@@ -2545,9 +2575,9 @@ > usage( myname, extraname ); > exit( 1 ); > } > >- /* this should be the first time this are called! if the init order >+ /* this should be the first time to be called! if the init order > * is ever changed, these lines should be changed (or erased)! > */ > mapping_tree_init(); > >@@ -2600,8 +2630,56 @@ > slapi_ch_free((void**)&myname ); > return( return_value ); > } > >+/* >+ * function to perform DB verify >+ */ >+static int >+slapd_exemode_dbverify() >+{ >+ int return_value = 0; >+ Slapi_PBlock pb; >+ struct slapdplugin *backend_plugin; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ /* this should be the first time to be called! if the init order >+ * is ever changed, these lines should be changed (or erased)! >+ */ >+ mapping_tree_init(); >+ if ((backend_plugin = plugin_get_by_name("ldbm database")) == NULL) { >+ LDAPDebug(LDAP_DEBUG_ANY, >+ "ERROR: Could not find the ldbm backend plugin.\n", >+ 0, 0, 0); >+ exit(1); >+ } >+ >+ /* check for slapi v2 support */ >+ if (! SLAPI_PLUGIN_IS_V2(backend_plugin)) { >+ LDAPDebug(LDAP_DEBUG_ANY, "ERROR: %s is too old to do imports.\n", >+ backend_plugin->plg_name, 0, 0); >+ exit(1); >+ } >+ >+ memset( &pb, '\0', sizeof(pb) ); >+ pb.pb_backend = NULL; >+ pb.pb_seq_val = dbverify_verbose; >+ pb.pb_plugin = backend_plugin; >+ pb.pb_instance_name = (char *)cmd_line_instance_names; >+ pb.pb_task_flags = TASK_RUNNING_FROM_COMMANDLINE; >+ >+ if ( backend_plugin->plg_dbverify != NULL ) { >+ return_value = (*backend_plugin->plg_dbverify)( &pb ); >+ } else { >+ LDAPDebug( LDAP_DEBUG_ANY, >+ "ERROR: no db verify function defined for " >+ "%s\n", backend_plugin->plg_name, 0, 0 ); >+ return_value = -1; >+ } >+ >+ return( return_value ); >+} >+ > > static int > slapd_exemode_dbtest() > { >Index: ldap/servers/slapd/pblock.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/pblock.c,v >retrieving revision 1.9 >diff -t -w -U4 -r1.9 pblock.c >--- ldap/servers/slapd/pblock.c 27 Feb 2007 02:57:30 -0000 1.9 >+++ ldap/servers/slapd/pblock.c 6 Sep 2007 21:40:03 -0000 >@@ -616,8 +616,14 @@ > return( -1 ); > } > (*(IFP *)value) = pblock->pb_plugin->plg_upgradedb; > break; >+ case SLAPI_PLUGIN_DB_DBVERIFY_FN: >+ if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { >+ return( -1 ); >+ } >+ (*(IFP *)value) = pblock->pb_plugin->plg_dbverify; >+ break; > case SLAPI_PLUGIN_DB_BEGIN_FN: > if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { > return( -1 ); > } >@@ -1885,8 +1891,14 @@ > return( -1 ); > } > pblock->pb_plugin->plg_upgradedb = (IFP) value; > break; >+ case SLAPI_PLUGIN_DB_DBVERIFY_FN: >+ if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { >+ return( -1 ); >+ } >+ pblock->pb_plugin->plg_dbverify = (IFP) value; >+ break; > case SLAPI_PLUGIN_DB_BEGIN_FN: > if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) { > return( -1 ); > } >Index: ldap/servers/slapd/slap.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slap.h,v >retrieving revision 1.25 >diff -t -w -U4 -r1.25 slap.h >--- ldap/servers/slapd/slap.h 17 Aug 2007 02:12:37 -0000 1.25 >+++ ldap/servers/slapd/slap.h 6 Sep 2007 21:40:03 -0000 >@@ -66,8 +66,9 @@ > #define SLAPD_EXEMODE_REFERRAL 8 > #define SLAPD_EXEMODE_SUFFIX2INSTANCE 9 > #define SLAPD_EXEMODE_PRINTVERSION 10 > #define SLAPD_EXEMODE_UPGRADEDB 11 >+#define SLAPD_EXEMODE_DBVERIFY 12 > > #ifdef _WIN32 > #ifndef DONT_DECLARE_SLAPD_LDAP_DEBUG > extern __declspec(dllimport) int slapd_ldap_debug; /* XXXmcs: should eliminate this */ >@@ -773,8 +774,9 @@ > IFP plg_un_db_db2index; /* database 2 index */ > IFP plg_un_db_archive2db; /* ldif 2 database */ > IFP plg_un_db_db2archive; /* database 2 ldif */ > IFP plg_un_db_upgradedb; /* convert old idl to new */ >+ IFP plg_un_db_verify; /* verify db files */ > IFP plg_un_db_begin; /* dbase txn begin */ > IFP plg_un_db_commit; /* dbase txn commit */ > IFP plg_un_db_abort; /* dbase txn abort */ > IFP plg_un_db_dbsize; /* database size */ >@@ -808,8 +810,9 @@ > #define plg_db2index plg_un.plg_un_db.plg_un_db_db2index > #define plg_archive2db plg_un.plg_un_db.plg_un_db_archive2db > #define plg_db2archive plg_un.plg_un_db.plg_un_db_db2archive > #define plg_upgradedb plg_un.plg_un_db.plg_un_db_upgradedb >+#define plg_dbverify plg_un.plg_un_db.plg_un_db_verify > #define plg_dbsize plg_un.plg_un_db.plg_un_db_dbsize > #define plg_dbtest plg_un.plg_un_db.plg_un_db_dbtest > #define plg_rmdb plg_un.plg_un_db.plg_un_db_rmdb > #define plg_init_instance plg_un.plg_un_db.plg_un_db_init_instance >Index: ldap/servers/slapd/slapi-private.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slapi-private.h,v >retrieving revision 1.15 >diff -t -w -U4 -r1.15 slapi-private.h >--- ldap/servers/slapd/slapi-private.h 14 Dec 2006 23:16:54 -0000 1.15 >+++ ldap/servers/slapd/slapi-private.h 6 Sep 2007 21:40:03 -0000 >@@ -831,8 +831,9 @@ > #define SLAPI_PLUGIN_DB_ENTRY_RELEASE_FN 230 > #define SLAPI_PLUGIN_DB_INIT_INSTANCE_FN 231 > #define SLAPI_PLUGIN_DB_WIRE_IMPORT_FN 234 > #define SLAPI_PLUGIN_DB_UPGRADEDB_FN 235 >+#define SLAPI_PLUGIN_DB_DBVERIFY_FN 236 > /* database plugin-specific parameters */ > #define SLAPI_PLUGIN_DB_NO_ACL 250 > #define SLAPI_PLUGIN_DB_RMDB_FN 280 > >Index: ldap/servers/slapd/task.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/task.c,v >retrieving revision 1.11 >diff -t -w -U4 -r1.11 task.c >--- ldap/servers/slapd/task.c 9 Apr 2007 23:02:41 -0000 1.11 >+++ ldap/servers/slapd/task.c 6 Sep 2007 21:40:03 -0000 >@@ -1485,8 +1485,9 @@ > slapi_entry_attr_set_int(e, TASK_WORK_NAME, task->task_work); > } > > out: >+ slapi_ch_free((void **)&mypb.pb_seq_val); > if (rv != 0) { > if (task) > destroy_task(1, task); > >Index: ldap/servers/slapd/back-ldbm/dblayer.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/dblayer.c,v >retrieving revision 1.19 >diff -t -w -U4 -r1.19 dblayer.c >--- ldap/servers/slapd/back-ldbm/dblayer.c 16 Aug 2007 19:28:58 -0000 1.19 >+++ ldap/servers/slapd/back-ldbm/dblayer.c 6 Sep 2007 21:40:03 -0000 >@@ -2521,10 +2521,13 @@ > } > } > } > #endif >+ if (0 == return_value >+ && !((DBLAYER_ARCHIVE_MODE|DBLAYER_EXPORT_MODE) & dbmode) >+ && !priv->dblayer_bad_stuff_happened) { > commit_good_database(priv); >- >+ } > return return_value; > } > > /* >Index: ldap/servers/slapd/back-ldbm/init.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/init.c,v >retrieving revision 1.8 >diff -t -w -U4 -r1.8 init.c >--- ldap/servers/slapd/back-ldbm/init.c 10 Nov 2006 23:45:39 -0000 1.8 >+++ ldap/servers/slapd/back-ldbm/init.c 6 Sep 2007 21:40:03 -0000 >@@ -208,8 +208,10 @@ > rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_DB2ARCHIVE_FN, > (void *) ldbm_back_ldbm2archive ); > rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_UPGRADEDB_FN, > (void *) ldbm_back_upgradedb ); >+ rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_DBVERIFY_FN, >+ (void *) ldbm_back_dbverify ); > rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_BEGIN_FN, > (void *) dblayer_plugin_begin ); > rc |= slapi_pblock_set( pb, SLAPI_PLUGIN_DB_COMMIT_FN, > (void *) dblayer_plugin_commit ); >Index: ldap/servers/slapd/back-ldbm/proto-back-ldbm.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h,v >retrieving revision 1.11 >diff -t -w -U4 -r1.11 proto-back-ldbm.h >--- ldap/servers/slapd/back-ldbm/proto-back-ldbm.h 15 Mar 2007 21:34:32 -0000 1.11 >+++ ldap/servers/slapd/back-ldbm/proto-back-ldbm.h 6 Sep 2007 21:40:03 -0000 >@@ -447,8 +447,9 @@ > int ldbm_back_ldbm2index( Slapi_PBlock *pb ); > int ldbm_back_archive2ldbm( Slapi_PBlock *pb ); > int ldbm_back_ldbm2archive( Slapi_PBlock *pb ); > int ldbm_back_upgradedb( Slapi_PBlock *pb ); >+int ldbm_back_dbverify( Slapi_PBlock *pb ); > int ldbm_back_next_search_entry( Slapi_PBlock *pb ); > int ldbm_back_next_search_entry_ext( Slapi_PBlock *pb, int use_extension ); > int ldbm_back_db_test( Slapi_PBlock *pb ); > int ldbm_back_entry_release( Slapi_PBlock *pb, void *backend_info_ptr );
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 236256
:
189281
|
189291
| 189301 |
190451