From e91d706129066a41f08bb668596da74bc1663517 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Tue, 9 Jun 2009 16:08:55 +0000 Subject: [PATCH] Fixed using partially "dirthy" DB (for example due to the new enum checks), merge transaction script to the 2.0 migration script. --- org.glite.lb.server/Makefile | 3 ++- .../config/glite-lb-dbsetup-migrate2transactions.sql | 11 ----------- .../config/glite-lb-migrate_db2version20 | 16 ++++++++++++++++ org.glite.lb.server/src/query.c | 20 +++++++++++++++----- 4 files changed, 33 insertions(+), 17 deletions(-) delete mode 100644 org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 4081506..c19a885 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -357,9 +357,10 @@ install: ${INSTALL} -m 755 ${LCAS_PLUGIN_LIB} ${PREFIX}/lib/modules ln -sf liblcas_lb.so ${PREFIX}/lib/modules/lcas_lb.mod - for f in dbsetup.sql dbsetup-migrate2transactions.sql index.conf.template; do \ + for f in dbsetup.sql index.conf.template; do \ ${INSTALL} -m 644 ${top_srcdir}/config/"glite-lb-$$f" ${PREFIX}/etc; \ done + ${INSTALL} -m 755 ${top_srcdir}/config/glite-lb-migrate_db2version20 ${PREFIX}/etc ${INSTALL} -m 755 ${top_srcdir}/config/startup ${PREFIX}/etc/init.d/glite-lb-bkserverd diff --git a/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql b/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql deleted file mode 100644 index 51eec7a..0000000 --- a/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql +++ /dev/null @@ -1,11 +0,0 @@ -alter table jobs engine=innodb; -alter table users engine=innodb; -alter table events engine=innodb; -alter table short_fields engine=innodb; -alter table long_fields engine=innodb; -alter table states engine=innodb; -alter table status_tags engine=innodb; -alter table server_state engine=innodb; -alter table acls engine=innodb; -alter table notif_registrations engine=innodb; -alter table notif_jobs engine=innodb; diff --git a/org.glite.lb.server/config/glite-lb-migrate_db2version20 b/org.glite.lb.server/config/glite-lb-migrate_db2version20 index b6c81b0..c5d9a0c 100644 --- a/org.glite.lb.server/config/glite-lb-migrate_db2version20 +++ b/org.glite.lb.server/config/glite-lb-migrate_db2version20 @@ -59,6 +59,22 @@ if [ "$SERVER" -a "$PROXY" ]; then fi +# convert for transactions (if very old DB) +cat < #include #include +#include #include #include #include @@ -169,11 +170,20 @@ int edg_wll_QueryEventsServer( /* Check non-indexed event conditions */ if ( convert_event_head(ctx, res+2, out+i) || edg_wll_get_event_flesh(ctx, n, out+i) ) { - free(res[1]); - free(res[2]); - memset(out+i, 0, sizeof(*out)); - glite_lbu_FreeStmt(&sh); - goto cleanup; + char *et,*ed, *dbjob; + + /* Most likely sort of internal inconsistency. + * Must not be fatal -- just complain + */ + edg_wll_Error(ctx,&et,&ed); + + dbjob = res[2]; + fprintf(stderr,"%s event %d: %s (%s)\n",dbjob,n,et,ed); + syslog(LOG_WARNING,"%s event %d: %s (%s)",dbjob,n,et,ed); + free(et); free(ed); + edg_wll_ResetError(ctx); + + goto fetch_cycle_cleanup; } if ( !match_flesh_conditions(out+i,event_conditions) || check_strict_jobid(ctx,out[i].any.jobId) ) -- 1.8.2.3