Skip to content

Instantly share code, notes, and snippets.

@philipbl
Created December 1, 2016 18:47
Show Gist options
  • Save philipbl/c3de70dba80bc718b87de289d1f08478 to your computer and use it in GitHub Desktop.
Save philipbl/c3de70dba80bc718b87de289d1f08478 to your computer and use it in GitHub Desktop.
Code that causes persistent queue to crash.
import os
import random
import threading
import uuid
from persistent_queue import PersistentQueue
random.seed(5)
filename = '{}'.format(str(uuid.uuid4()).replace('-', ''))
queue = PersistentQueue(filename)
def random_stuff():
for i in range(10):
random_number = random.randint(0, 1000)
if random_number % 3 == 0:
queue.peek(random_number % 5)
elif random_number % 2 == 0:
queue.pop(random_number % 5)
else:
for i in range(random_number % 10):
if random_number > 800:
queue.push(None)
else:
queue.push(random_number)
threads = [threading.Thread(target=random_stuff) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
# Remove everything that is left so we make sure it is serializable
for _ in range(len(queue)):
queue.pop()
os.remove(filename)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment