Alvinn-aai commited on
Commit
1a35a11
·
1 Parent(s): 6d7c674

protect submission db with lock

Browse files
Files changed (1) hide show
  1. src/submission/submit.py +15 -9
src/submission/submit.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import time
2
  from datetime import datetime, timezone, timedelta
3
  import os
@@ -23,6 +24,8 @@ MIN_WAIT_TIME_PER_USER_HRS = 0.1 # TODO set to 24 for production
23
  RATE_LIMIT_WINDOW_HRS = 24
24
  MAX_SUBMISSIONS_PER_WINDOW = 10
25
 
 
 
26
 
27
  def add_new_solutions(
28
  lbdb: F1Data,
@@ -35,10 +38,11 @@ def add_new_solutions(
35
  is_warmup_dataset: bool,
36
  ensure_all_present: bool = False,
37
  ):
38
- try:
39
- submitted_ids = get_dataset_config_names(SUBMISSIONS_REPO, token=TOKEN)
40
- except (DatasetNotFoundError, FileNotFoundError):
41
- submitted_ids = []
 
42
 
43
  logger.info(f"Found {len(submitted_ids)} submissions")
44
 
@@ -115,11 +119,13 @@ def add_new_solutions(
115
  }
116
 
117
  ds = Dataset.from_pandas(submission_df).map(add_info)
118
- ds.push_to_hub(
119
- SUBMISSIONS_REPO,
120
- submission_id,
121
- private=True,
122
- )
 
 
123
 
124
  return styled_message(
125
  "Your request has been submitted to the evaluation queue!\n"
 
1
+ import threading
2
  import time
3
  from datetime import datetime, timezone, timedelta
4
  import os
 
24
  RATE_LIMIT_WINDOW_HRS = 24
25
  MAX_SUBMISSIONS_PER_WINDOW = 10
26
 
27
+ submission_lock = threading.Lock()
28
+
29
 
30
  def add_new_solutions(
31
  lbdb: F1Data,
 
38
  is_warmup_dataset: bool,
39
  ensure_all_present: bool = False,
40
  ):
41
+ with submission_lock:
42
+ try:
43
+ submitted_ids = get_dataset_config_names(SUBMISSIONS_REPO, token=TOKEN)
44
+ except (DatasetNotFoundError, FileNotFoundError):
45
+ submitted_ids = []
46
 
47
  logger.info(f"Found {len(submitted_ids)} submissions")
48
 
 
119
  }
120
 
121
  ds = Dataset.from_pandas(submission_df).map(add_info)
122
+
123
+ with submission_lock:
124
+ ds.push_to_hub(
125
+ SUBMISSIONS_REPO,
126
+ submission_id,
127
+ private=True,
128
+ )
129
 
130
  return styled_message(
131
  "Your request has been submitted to the evaluation queue!\n"