Created
December 1, 2016 18:47
-
-
Save philipbl/c3de70dba80bc718b87de289d1f08478 to your computer and use it in GitHub Desktop.
Code that causes persistent queue to crash.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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