From: Art Cancro Date: Tue, 29 Aug 2023 05:37:59 +0000 (-0400) Subject: Temporarily disable the indexer X-Git-Tag: v989~21 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=b6a88a1704a900dac96730267268af59fdd92715;p=citadel.git Temporarily disable the indexer --- diff --git a/citadel/server/backends/berkeley_db/berkeley_db.c b/citadel/server/backends/berkeley_db/berkeley_db.c index 3e7d2af90..b025f0953 100644 --- a/citadel/server/backends/berkeley_db/berkeley_db.c +++ b/citadel/server/backends/berkeley_db/berkeley_db.c @@ -255,7 +255,7 @@ void bdb_open_databases(void) { bdb_env->set_verbose(bdb_env, DB_VERB_DEADLOCK, 1); bdb_env->set_verbose(bdb_env, DB_VERB_RECOVERY, 1); - flags = DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD; + flags = DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD ; syslog(LOG_DEBUG, "bdb: bdb_env->open(bdb_env, %s, %d, 0)", ctdl_db_dir, flags); ret = bdb_env->open(bdb_env, ctdl_db_dir, flags, 0); // try opening the database cleanly if (ret) { @@ -632,10 +632,7 @@ void bdb_tick(void) { } else if (rejected) { syslog(LOG_DEBUG, "bdb: rejected lock %d", rejected); - bdb_abort(); // FIXME remove this, we want to unlock, not abort } - - syslog(LOG_DEBUG, "bdb: tick..."); } diff --git a/citadel/server/context.c b/citadel/server/context.c index 280c4f283..28815f485 100644 --- a/citadel/server/context.c +++ b/citadel/server/context.c @@ -511,8 +511,10 @@ void dead_session_purge(int force) { } time(&last_purge); - if (try_critical_section(S_SESSION_TABLE)) - return; + //if (try_critical_section(S_SESSION_TABLE)) + //return; + // + begin_critical_section(S_SESSION_TABLE); ptr = ContextList; while (ptr) { diff --git a/citadel/server/modules/ctdlproto/serv_rooms.c b/citadel/server/modules/ctdlproto/serv_rooms.c index f8d571d1f..a6bd3036b 100644 --- a/citadel/server/modules/ctdlproto/serv_rooms.c +++ b/citadel/server/modules/ctdlproto/serv_rooms.c @@ -522,8 +522,7 @@ void cmd_setr(char *args) { /* Directory room */ extract_token(buf, args, 2, '|', sizeof buf); buf[15] = 0; - safestrncpy(CC->room.QRdirname, buf, - sizeof CC->room.QRdirname); + safestrncpy(CC->room.QRdirname, buf, sizeof CC->room.QRdirname); /* Default view */ if (num_parms(args) >= 8) { @@ -541,16 +540,13 @@ void cmd_setr(char *args) { * guess-name or passworded, ensure that the private flag is * also set. */ - if ((CC->room.QRflags & QR_GUESSNAME) - || (CC->room.QRflags & QR_PASSWORDED)) - CC->room.QRflags |= QR_PRIVATE; + if ((CC->room.QRflags & QR_GUESSNAME) || (CC->room.QRflags & QR_PASSWORDED)) CC->room.QRflags |= QR_PRIVATE; /* Some changes can't apply to BASEROOM */ if (!strncasecmp(CC->room.QRname, CtdlGetConfigStr("c_baseroom"), ROOMNAMELEN)) { CC->room.QRorder = 0; CC->room.QRpasswd[0] = '\0'; - CC->room.QRflags &= ~(QR_PRIVATE & QR_PASSWORDED & - QR_GUESSNAME & QR_PREFONLY & QR_MAILBOX); + CC->room.QRflags &= ~(QR_PRIVATE & QR_PASSWORDED & QR_GUESSNAME & QR_PREFONLY & QR_MAILBOX); CC->room.QRflags |= QR_PERMANENT; } else { diff --git a/citadel/server/modules_init.c b/citadel/server/modules_init.c index d0d240177..3f607eb68 100644 --- a/citadel/server/modules_init.c +++ b/citadel/server/modules_init.c @@ -42,7 +42,7 @@ void initialize_modules(int is_threading) { syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_syscmd()); syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_serv_user()); syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_expire()); - syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_fulltext()); + //syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_fulltext()); // FIXME trying this syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_image()); syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_imap()); syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_sieve()); diff --git a/citadel/server/msgbase.c b/citadel/server/msgbase.c index 22d9d84c5..1f1671da4 100644 --- a/citadel/server/msgbase.c +++ b/citadel/server/msgbase.c @@ -2211,9 +2211,7 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms if (num_newmsgs > 1) supplied_msg = NULL; /* Now the regular stuff */ - if (CtdlGetRoomLock(&CC->room, - ((roomname != NULL) ? roomname : CC->room.QRname) ) - != 0) { + if (CtdlGetRoomLock(&CC->room, ((roomname != NULL) ? roomname : CC->room.QRname) ) != 0) { syslog(LOG_ERR, "msgbase: no such room <%s>", roomname); return(ERROR + ROOM_NOT_FOUND); } @@ -2247,6 +2245,7 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms if (msglist == NULL) { syslog(LOG_ALERT, "msgbase: ERROR; can't realloc message list!"); free(msgs_to_be_merged); + abort(); // FIXME FIXME FOOFOO return (ERROR + INTERNAL_ERROR); } memcpy(&msglist[num_msgs], msgs_to_be_merged, (sizeof(long) * num_msgs_to_be_merged) ); diff --git a/citadel/server/room_ops.c b/citadel/server/room_ops.c index 301f59872..5061ed55e 100644 --- a/citadel/server/room_ops.c +++ b/citadel/server/room_ops.c @@ -341,7 +341,11 @@ int CtdlGetRoom(struct ctdlroom *qrbuf, const char *room_name) { int CtdlGetRoomLock(struct ctdlroom *qrbuf, const char *room_name) { register int retval; retval = CtdlGetRoom(qrbuf, room_name); - if (retval == 0) begin_critical_section(S_ROOMS); + if (retval == 0) { + //syslog(LOG_ERR, "\033[33mCtdlGetRoomLock(%p) requested\033[0m", pthread_self()); + begin_critical_section(S_ROOMS); + //syslog(LOG_ERR, "\033[31mCtdlGetRoomLock(%p) acquired\033[0m", pthread_self()); + } return(retval); } @@ -383,6 +387,7 @@ void b_deleteroom(char *room_name) { void CtdlPutRoomLock(struct ctdlroom *qrbuf) { CtdlPutRoom(qrbuf); end_critical_section(S_ROOMS); + //syslog(LOG_ERR, "\033[32mCtdlGetRoomLock(%p) released\033[0m", CC); } diff --git a/citadel/server/sysdep.c b/citadel/server/sysdep.c index ada01885f..cbe62879a 100644 --- a/citadel/server/sysdep.c +++ b/citadel/server/sysdep.c @@ -986,21 +986,17 @@ SKIP_SELECT: pthread_mutex_lock(&ThreadCountMutex); --active_workers; - if ( (active_workers + CtdlGetConfigInt("c_min_workers") < num_workers) - && (num_workers > CtdlGetConfigInt("c_min_workers")) - ) { - num_workers--; - pthread_mutex_unlock(&ThreadCountMutex); - return (NULL); - } pthread_mutex_unlock(&ThreadCountMutex); } // If control reaches this point, the server is shutting down - pthread_mutex_lock(&ThreadCountMutex); - --num_workers; - pthread_mutex_unlock(&ThreadCountMutex); - return(NULL); + while(1) { + sleep(1); // wait to die + } + //pthread_mutex_lock(&ThreadCountMutex); + //--num_workers; + //pthread_mutex_unlock(&ThreadCountMutex); + //return(NULL); } diff --git a/citadel/server/threads.c b/citadel/server/threads.c index 0b566c614..0caa2a7fb 100644 --- a/citadel/server/threads.c +++ b/citadel/server/threads.c @@ -60,12 +60,11 @@ void begin_critical_section(int which_one) { cdb_check_handles(); } - //syslog(LOG_ERR, "\033[3%dm lock(%14p, %2d, %s)\033[0m", (which_one%6)+1, (CC==&masterCC ? 0 : CC), which_one, locks); + //syslog(LOG_ERR, "\033[3%dm lock(%14p, %2d, %s)\033[0m", (which_one%6)+1, pthread_self(), which_one, locks); pthread_mutex_lock(&Critters[which_one]); - if (locks[which_one] == 'X') { - syslog(LOG_ERR, "\033[7mHOLY SHIT, Thread %p sees double lock %d!!!!111\033[0m", CC, which_one); - abort(); - } + //if (locks[which_one] != 'X') { + //syslog(LOG_ERR, "\033[31mThread %p had to wait to get a lock on %d\033[0m", pthread_self(), which_one); + //} locks[which_one] = 'X'; } @@ -73,7 +72,7 @@ void begin_critical_section(int which_one) { // Release a semaphore lock to end a critical section. void end_critical_section(int which_one) { locks[which_one] = '_'; - //syslog(LOG_ERR, "\033[3%dmunlock(%14p, %2d, %s)\033[0m", (which_one%6)+1, (CC==&masterCC ? 0 : CC), which_one, locks); + //syslog(LOG_ERR, "\033[3%dmunlock(%14p, %2d, %s)\033[0m", (which_one%6)+1, pthread_self(), which_one, locks); pthread_mutex_unlock(&Critters[which_one]); }