From: Christian Grothoff Date: Fri, 15 Apr 2011 20:12:21 +0000 (+0000) Subject: fixes X-Git-Tag: initial-import-from-subversion-38251~18668 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ae6871c097e55b61d10a66428b1c9a732a0fe803;p=oweals%2Fgnunet.git fixes --- diff --git a/src/datastore/gnunet-service-datastore.c b/src/datastore/gnunet-service-datastore.c index 619d89732..566a227c1 100644 --- a/src/datastore/gnunet-service-datastore.c +++ b/src/datastore/gnunet-service-datastore.c @@ -1345,9 +1345,6 @@ remove_callback (void *cls, { struct RemoveContext *rc = cls; - fprintf (stderr, - "remove called with key %p\n", - key); if (key == NULL) { #if DEBUG_DATASTORE @@ -1422,13 +1419,6 @@ handle_remove (void *cls, GNUNET_CRYPTO_hash (&dm[1], ntohl(dm->size), &vhash); - fprintf (stderr, - "remove does get for key %s\n", - GNUNET_h2s (&dm->key)); - fprintf (stderr, - "remove does get for %u vhash %s\n", - ntohl (dm->type), - GNUNET_h2s (&vhash)); plugin->api->get (plugin->api->cls, &dm->key, &vhash, diff --git a/src/datastore/perf_datastore_api.c b/src/datastore/perf_datastore_api.c index 306e6d5e0..6ea65c68d 100644 --- a/src/datastore/perf_datastore_api.c +++ b/src/datastore/perf_datastore_api.c @@ -88,7 +88,8 @@ enum RunPhase RP_DONE = 0, RP_PUT, RP_CUT, - RP_REPORT + RP_REPORT, + RP_ERROR }; @@ -116,10 +117,16 @@ check_success (void *cls, const char *msg) { struct CpsRunContext *crc = cls; + if (GNUNET_OK != success) - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "%s\n", msg); - GNUNET_assert (GNUNET_OK == success); + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Check success failed: `%s'\n", msg); + crc->phase = RP_ERROR; + GNUNET_SCHEDULER_add_now (&run_continuation, + crc); + return; + } #if REPORT_ID fprintf (stderr, "I"); #endif @@ -157,6 +164,15 @@ remove_next(void *cls, { struct CpsRunContext *crc = cls; + if (GNUNET_OK != success) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "remove_next failed: `%s'\n", msg); + crc->phase = RP_ERROR; + GNUNET_SCHEDULER_add_now (&run_continuation, + crc); + return; + } #if REPORT_ID fprintf (stderr, "D"); #endif @@ -168,7 +184,7 @@ remove_next(void *cls, static void delete_value (void *cls, - const GNUNET_HashCode * key, + const GNUNET_HashCode *key, size_t size, const void *data, enum GNUNET_BLOCK_Type type, @@ -178,7 +194,7 @@ delete_value (void *cls, expiration, uint64_t uid) { struct CpsRunContext *crc = cls; - + GNUNET_assert (NULL != key); stored_ops++; stored_bytes -= size; @@ -275,6 +291,11 @@ run_continuation (void *cls, GNUNET_free (crc); ok = 0; break; + case RP_ERROR: + GNUNET_DATASTORE_disconnect (datastore, GNUNET_YES); + GNUNET_free (crc); + ok = 1; + break; default: GNUNET_assert (0); } @@ -383,7 +404,6 @@ main (int argc, char *argv[]) char *pos; char dir_name[128]; - if (1) return 0; /* determine name of plugin to use */ plugin_name = argv[0]; while (NULL != (pos = strstr(plugin_name, "_"))) diff --git a/src/datastore/plugin_datastore_mysql.c b/src/datastore/plugin_datastore_mysql.c index 863c55ad8..005026c92 100644 --- a/src/datastore/plugin_datastore_mysql.c +++ b/src/datastore/plugin_datastore_mysql.c @@ -262,28 +262,28 @@ struct Plugin #define DELETE_ENTRY_BY_UID "DELETE FROM gn090 WHERE uid=?" struct GNUNET_MysqlStatementHandle *delete_entry_by_uid; -#define COUNT_ENTRY_BY_HASH "SELECT count(*) FROM gn090 FORCE INDEX (idx_hash) WHERE hash=?" +#define COUNT_ENTRY_BY_HASH "SELECT count(*) FROM gn090 WHERE hash=?" struct GNUNET_MysqlStatementHandle *count_entry_by_hash; -#define SELECT_ENTRY_BY_HASH "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX (idx_hash_uid) WHERE hash=? ORDER BY uid LIMIT 1 OFFSET ?" +#define SELECT_ENTRY_BY_HASH "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE hash=? ORDER BY uid LIMIT 1 OFFSET ?" struct GNUNET_MysqlStatementHandle *select_entry_by_hash; -#define COUNT_ENTRY_BY_HASH_AND_VHASH "SELECT count(*) FROM gn090 FORCE INDEX (idx_hash_vhash) WHERE hash=? AND vhash=?" +#define COUNT_ENTRY_BY_HASH_AND_VHASH "SELECT count(*) FROM gn090 WHERE hash=? AND vhash=?" struct GNUNET_MysqlStatementHandle *count_entry_by_hash_and_vhash; -#define SELECT_ENTRY_BY_HASH_AND_VHASH "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX (idx_hash_vhash) WHERE hash=? AND vhash=? ORDER BY uid LIMIT 1 OFFSET ?" +#define SELECT_ENTRY_BY_HASH_AND_VHASH "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE hash=? AND vhash=? ORDER BY uid LIMIT 1 OFFSET ?" struct GNUNET_MysqlStatementHandle *select_entry_by_hash_and_vhash; -#define COUNT_ENTRY_BY_HASH_AND_TYPE "SELECT count(*) FROM gn090 FORCE INDEX (idx_hash_type_uid) WHERE hash=? AND type=?" +#define COUNT_ENTRY_BY_HASH_AND_TYPE "SELECT count(*) FROM gn090 WHERE hash=? AND type=?" struct GNUNET_MysqlStatementHandle *count_entry_by_hash_and_type; -#define SELECT_ENTRY_BY_HASH_AND_TYPE "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX (idx_hash_type_uid) WHERE hash=? AND type=? ORDER BY uid LIMIT 1 OFFSET ?" +#define SELECT_ENTRY_BY_HASH_AND_TYPE "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE hash=? AND type=? ORDER BY uid LIMIT 1 OFFSET ?" struct GNUNET_MysqlStatementHandle *select_entry_by_hash_and_type; -#define COUNT_ENTRY_BY_HASH_VHASH_AND_TYPE "SELECT count(*) FROM gn090 FORCE INDEX (idx_hash_vhash) WHERE hash=? AND vhash=? AND type=?" +#define COUNT_ENTRY_BY_HASH_VHASH_AND_TYPE "SELECT count(*) FROM gn090 WHERE hash=? AND vhash=? AND type=?" struct GNUNET_MysqlStatementHandle *count_entry_by_hash_vhash_and_type; -#define SELECT_ENTRY_BY_HASH_VHASH_AND_TYPE "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX (idx_hash_vhash) WHERE hash=? AND vhash=? AND type=? ORDER BY uid ASC LIMIT 1 OFFSET ?" +#define SELECT_ENTRY_BY_HASH_VHASH_AND_TYPE "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE hash=? AND vhash=? AND type=? ORDER BY uid ASC LIMIT 1 OFFSET ?" struct GNUNET_MysqlStatementHandle *select_entry_by_hash_vhash_and_type; #define UPDATE_ENTRY "UPDATE gn090 SET prio=prio+?,expire=IF(expire>=?,expire,?) WHERE uid=?" @@ -295,16 +295,16 @@ struct Plugin #define SELECT_SIZE "SELECT SUM(BIT_LENGTH(value) DIV 8) FROM gn090" struct GNUNET_MysqlStatementHandle *get_size; -#define SELECT_IT_NON_ANONYMOUS "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX(idx_anonLevel_uid) WHERE anonLevel=0 ORDER BY uid DESC LIMIT 1 OFFSET ?" +#define SELECT_IT_NON_ANONYMOUS "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE anonLevel=0 ORDER BY uid DESC LIMIT 1 OFFSET ?" struct GNUNET_MysqlStatementHandle *zero_iter; -#define SELECT_IT_EXPIRATION "(SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX(idx_expire_prio) WHERE expire < ? ORDER BY prio ASC LIMIT 1) "\ +#define SELECT_IT_EXPIRATION "(SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 WHERE expire < ? ORDER BY prio ASC LIMIT 1) "\ "UNION "\ - "(SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX(idx_prio) ORDER BY prio ASC LIMIT 1) "\ + "(SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 ORDER BY prio ASC LIMIT 1) "\ "ORDER BY expire ASC LIMIT 1" struct GNUNET_MysqlStatementHandle *select_expiration; -#define SELECT_IT_REPLICATION "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 FORCE INDEX(idx_repl) ORDER BY repl DESC,RAND() LIMIT 1" +#define SELECT_IT_REPLICATION "SELECT type,prio,anonLevel,expire,hash,value,uid FROM gn090 ORDER BY repl DESC,RAND() LIMIT 1" struct GNUNET_MysqlStatementHandle *select_replication; }; @@ -866,7 +866,6 @@ return_ok (void *cls, unsigned int num_values, MYSQL_BIND *values) { - fprintf (stderr, "Here: %u\n", num_values); return GNUNET_OK; } @@ -948,16 +947,6 @@ mysql_plugin_put (void *cls, hashSize2 = sizeof (GNUNET_HashCode); lsize = size; GNUNET_CRYPTO_hash (data, size, &vhash); - { - fprintf (stderr, - "inserting content with key `%s'\n", - GNUNET_h2s (key)); - fprintf (stderr, - "inserting %u-byte content with vhash `%s'\n", - (unsigned int) size, - GNUNET_h2s (&vhash)); - } - if (GNUNET_OK != prepared_statement_run (plugin, plugin->insert_entry, @@ -1128,19 +1117,6 @@ mysql_next_request_cont (void *next_cls, exp); #endif expiration.abs_value = exp; - - { - GNUNET_HashCode vh; - - GNUNET_CRYPTO_hash (value, size, &vh); - fprintf (stderr, - "found content under with key `%s'\n", - GNUNET_h2s (&key)); - fprintf (stderr, - "found %u-byte content with vhash `%s'\n", - (unsigned int) size, - GNUNET_h2s (&vh)); -} ret = nrc->dviter (nrc->dviter_cls, (nrc->one_shot == GNUNET_YES) ? NULL : nrc, &key, @@ -1279,12 +1255,6 @@ get_statement_prepare (void *cls, { if (gc->have_vhash) { - fprintf (stderr, - "Select by key `%s'\n", - GNUNET_h2s (&gc->key)); - fprintf (stderr, - "Select by vhash `%s'\n", - GNUNET_h2s (&gc->vhash)); ret = prepared_statement_run_select (plugin, plugin->select_entry_by_hash_and_vhash, @@ -1385,12 +1355,6 @@ mysql_plugin_get (void *cls, { if (vhash != NULL) { - fprintf (stderr, - "Count by key `%s'\n", - GNUNET_h2s (key)); - fprintf (stderr, - "Count by vhash `%s'\n", - GNUNET_h2s (vhash)); ret = prepared_statement_run_select (plugin, plugin->count_entry_by_hash_and_vhash, @@ -1412,12 +1376,6 @@ mysql_plugin_get (void *cls, -1); } } - fprintf (stderr, - "Got %u results (ret: %d / `%s')\n", - (unsigned int) total, - ret, - mysql_error (plugin->dbf)); - if ((ret != GNUNET_OK) || (0 >= total)) { iter (iter_cls, @@ -1592,6 +1550,7 @@ repl_iter (void *cls, struct Plugin *plugin = rc->plugin; unsigned long long oid; int ret; + int iret; ret = rc->iter (rc->iter_cls, next_cls, key, @@ -1601,12 +1560,12 @@ repl_iter (void *cls, if (NULL != key) { oid = (unsigned long long) uid; - ret = prepared_statement_run (plugin, + iret = prepared_statement_run (plugin, plugin->dec_repl, NULL, MYSQL_TYPE_LONGLONG, &oid, GNUNET_YES, -1); - if (ret == GNUNET_SYSERR) + if (iret == GNUNET_SYSERR) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Failed to reduce replication counter\n"); @@ -1761,7 +1720,8 @@ libgnunet_plugin_datastore_mysql_init (void *cls) " vhash BINARY(64) NOT NULL DEFAULT ''," " value BLOB NOT NULL DEFAULT ''," " uid BIGINT NOT NULL AUTO_INCREMENT," - " PRIMARY KEY (uid)," + " PRIMARY KEY (uid)" +#if 0 " INDEX idx_hash (hash(64))," " INDEX idx_hash_uid (hash(64),uid)," " INDEX idx_hash_vhash (hash(64),vhash(64))," @@ -1770,6 +1730,7 @@ libgnunet_plugin_datastore_mysql_init (void *cls) " INDEX idx_repl (repl)," " INDEX idx_expire_prio (expire,prio)," " INDEX idx_anonLevel_uid (anonLevel,uid)" +#endif ") ENGINE=InnoDB") || MRUNS ("SET AUTOCOMMIT = 1") || PINIT (plugin->insert_entry, INSERT_ENTRY) ||