Merge "Revert "app_voicemail: Cleanup stale lock files on module load"" into 16

This commit is contained in:
Friendly Automation 2019-10-10 10:06:45 -05:00 committed by Gerrit Code Review
commit 6b8423821f
2 changed files with 10 additions and 51 deletions

View File

@ -3813,54 +3813,6 @@ static void check_quota(struct vm_state *vms, char *mailbox) {
#endif /* IMAP_STORAGE */
static void cleanup_orphaned_lock_files(const char *base)
{
DIR *dir;
struct dirent *e;
dir = opendir(base);
if (!dir) {
/* Don't complain about this too loudly */
ast_debug(2, "Unable to open `%s': %s\n", base, strerror(errno));
return;
}
while ((e = readdir(dir))) {
char *fullpath;
struct stat s;
/* Always skip . and .. */
if (!strcmp(e->d_name, ".") || !strcmp(e->d_name, "..")) {
continue;
}
/* Build up the full path (using dynamic memory because PATH_MAX is crap) */
if (ast_asprintf(&fullpath, "%s/%s", base, e->d_name) == -1) {
break;
}
if (lstat(fullpath, &s) < 0) {
ast_free(fullpath);
continue;
}
/* This is exposing an implementation detail of ast_lock_path, but it makes
* our life a bit easier */
if (!strcmp(e->d_name, ".lock") && S_ISLNK(s.st_mode)) {
if (!ast_unlock_path(base)) {
ast_log(AST_LOG_NOTICE, "Cleaned up orphaned lock file: %s/.lock\n", base);
}
} else if (S_ISDIR(s.st_mode)) {
/* If it is a directory, let's dive down */
cleanup_orphaned_lock_files(fullpath);
}
ast_free(fullpath);
}
closedir(dir);
}
/*! \brief Lock file path
* only return failure if ast_lock_path returns 'timeout',
* not if the path does not exist or any other reason
@ -15411,9 +15363,6 @@ static int load_module(void)
/* compute the location of the voicemail spool directory */
snprintf(VM_SPOOL_DIR, sizeof(VM_SPOOL_DIR), "%s/voicemail/", ast_config_AST_SPOOL_DIR);
/* Now that we have a spool directory, clean up old lock files */
cleanup_orphaned_lock_files(VM_SPOOL_DIR);
if (!(mwi_subscription_tps = ast_taskprocessor_get("app_voicemail", 0))) {
ast_log(AST_LOG_WARNING, "failed to reference mwi subscription taskprocessor. MWI will not work\n");
}

View File

@ -0,0 +1,10 @@
Subject: app_voicemail
A feature was added in Asterisk 13.27.0 and 16.4.0 that removed lock files from
the Asterisk voicemail directory on startup. Some users that store their
voicemails on network storage devices experienced slow startup times due to the
relative expense of traversing the voicemail directory structure looking for
orphaned lock files. This feature has now been removed.
Users who require the lock files to be removed at startup should modify their
startup scripts to do so before starting the asterisk process.