I am working on a Django app locally that needs to take a CSV file as input and run some analysis on the file. I am running Celery, RabbitMQ, and web server locally. When I import the file, I see the following error on the Celery server:
[2015-12-11 16:58:53,906: WARNING/MainProcess] celery@Joes-MBP ready.
[2015-12-11 16:59:11,068: ERROR/MainProcess] Task program_manager.tasks.analyze_list_import_program[db22de16-b92f-4220-b2bd-5accf484c99a] raised unexpected: WorkerLostError('Worker exited prematurely: signal 11 (SIGSEGV).',)
Traceback (most recent call last):
File "/Users/joefusaro/rl_proto2/venv/lib/python2.7/site-packages/billiard/pool.py", line 1175, in mark_as_worker_lost
human_status(exitcode)),
WorkerLostError: Worker exited prematurely: signal 11 (SIGSEGV).
I am not sure how to troubleshoot this further; if it will help I have copied the relevant code from program_manager/tasks.py:
from __future__ import absolute_import
import csv
import rollbar
from celery import shared_task
from celery.utils.log import get_task_logger
from qscore.models import QualityScore
from integrations.salesforce.prepare import read_csv
from qscore.quality_score import QualityScoreCalculator
logger = get_task_logger(__name__)
@shared_task
def analyze_list_import_program(program):
program.status = 'RUN'
program.save()
df = read_csv(program.csv_file.file)
try:
qs = program.get_current_quality_score()
qs_calc = QualityScoreCalculator(df, qs)
qscore_data = qs_calc.calculate()
QualityScore.objects.filter(id=qs.id).update(**qscore_data)
except Exception as e:
rollbar.report_exc_info()
program.status = 'ERROR'
else:
program.status = 'COMPL'
finally:
program.save()