Better error handling when replying to a tweet that's been deleted

RESOLVED INCOMPLETE

Status

P1
normal
RESOLVED INCOMPLETE
8 years ago
4 years ago

People

(Reporter: jsocol, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [traceback])

(Reporter)

Description

8 years ago
I assume the following traceback is from attempting to reply to a tweet that has been deleted (should be easy enough to manually create that situation to confirm). In that case we should be doing a SELECT to get the in_reply_to tweet before trying to save it and producing an appropriate message if we can't.

I think we should probably write through to Twitter even if we can't store the tweet locally, but we still need better messaging.



Traceback (most recent call last):

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/core/handlers/base.py", line 100, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/views/decorators/http.py", line 37, in inner
    return func(request, *args, **kwargs)

  File "/data/www/support.mozilla.com/kitsune/apps/twitter/__init__.py", line 50, in wrapper
    return view_func(request, *args, **kwargs)

  File "/data/www/support.mozilla.com/kitsune/apps/customercare/views.py", line 214, in twitter_post
    reply_to_id=reply_to_id)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/manager.py", line 138, in create
    return self.get_query_set().create(**kwargs)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/query.py", line 358, in create
    obj.save(force_insert=True, using=self.db)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/base.py", line 458, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/base.py", line 551, in save_base
    result = manager._insert(values, return_id=update_pk, using=using)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/manager.py", line 195, in _insert
    return insert_query(self.model, values, **kwargs)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/query.py", line 1524, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/sql/compiler.py", line 788, in execute_sql
    cursor = super(SQLInsertCompiler, self).execute_sql(None)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/models/sql/compiler.py", line 732, in execute_sql
    cursor.execute(sql, params)

  File "/data/www/support.mozilla.com/kitsune/vendor/src/django/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)

  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute
    self.errorhandler(self, exc, value)

  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue

IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`support_mozilla_com/customercare_tweet`, CONSTRAINT `reply_to_id_refs_tweet_id_47b7f44d` FOREIGN KEY (`reply_to_id`) REFERENCES `customercare_tweet` (`tweet_id`))')
Target Milestone: 2011Q2 → 2011Q3
(Reporter)

Updated

7 years ago
Target Milestone: 2011Q3 → ---
I haven't heard anything about this in 4 years. I don't think it's worth looking into to see if it's still valid. If it's still an issue, we can reopen it.
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.