Warning: session_start(): open(/var/lib/php/sessions/sess_vqq1tn5itsitdfsucgir5oi4bj, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
cprint TestFileBasedLock {
switchable File file;
switchable double timeout = 10;
transient FileBasedLock lock1, lock2;
start-thread {
if (file == null)
setField(file := javaxCachesDir("Lock Test/lockfile-" + aGlobalID()));
print("Using file: " + file);
regularTest();
crashTest();
print("All OK!");
}
void regularTest {
lock1 = new FileBasedLock(file);
lock2 = new FileBasedLock(file);
assertTrueVerbose("Locking lock1", lock1.tryToLock());
assertFalseVerbose("Locking lock2", lock2.tryToLock());
print("Waiting for timeout (" + (timeout+1) + "s)");
sleepSeconds(timeout+1);
assertFalseVerbose("Locking lock2", lock2.tryToLock());
close(lock1);
assertTrueVerbose("Locking lock2", lock2.tryToLock());
close(lock2);
print("\nRegular test OK!\n");
}
void crashTest {
lock1 = new FileBasedLock(file);
lock2 = new FileBasedLock(file);
assertTrueVerbose("Locking lock1", lock1.tryToLock());
assertFalseVerbose("Locking lock2", lock2.tryToLock());
lock1._simulateCrash();
print("Waiting for timeout (" + (timeout+1) + "s)");
sleepSeconds(timeout+1);
assertTrueVerbose("Locking lock2", lock2.tryToLock());
closeAll(lock1, lock2);
print("\nCrash test OK!\n");
}
void cleanMeUp {
closeAll(lock1, lock2);
}
}