Skip to content

Commit e1b4524

Browse files
committed
Changes ~jobs.error_stack from blob to mediumblob
1 parent a91f239 commit e1b4524

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

datajoint/jobs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def __init__(self, conn, database):
3232
status :enum('reserved','error','ignore') # if tuple is missing, the job is available
3333
key=null :blob # structure containing the key
3434
error_message="" :varchar({error_message_length}) # error message returned if failed
35-
error_stack=null :blob # error stack if failed
35+
error_stack=null :mediumblob # error stack if failed
3636
user="" :varchar(255) # database user
3737
host="" :varchar(255) # system hostname
3838
pid=0 :int unsigned # system process id

tests/test_jobs.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,23 @@ def test_long_error_message():
122122
assert_true(error_message == short_error_message, 'error messages do not agree')
123123
assert_false(error_message.endswith(TRUNCATION_APPENDIX), 'error message should not be truncated')
124124
schema.schema.jobs.delete()
125+
126+
127+
def test_long_error_stack():
128+
# clear out jobs table
129+
schema.schema.jobs.delete()
130+
131+
# create long error stack
132+
STACK_SIZE = 89942 # Does not fit into small blob (should be 64k, but found to be higher)
133+
long_error_stack = ''.join(random.choice(string.ascii_letters) for _ in range(STACK_SIZE))
134+
assert_true(subjects)
135+
table_name = 'fake_table'
136+
137+
key = subjects.fetch('KEY')[0]
138+
139+
# test long error stack
140+
schema.schema.jobs.reserve(table_name, key)
141+
schema.schema.jobs.error(table_name, key, 'error message', long_error_stack)
142+
error_stack = schema.schema.jobs.fetch1('error_stack')
143+
assert_true(error_stack == long_error_stack, 'error stacks do not agree')
144+
schema.schema.jobs.delete()

0 commit comments

Comments
 (0)