winfried / HelpIM

*obsoleted* An chat-system for online psycho-social counselling
11 stars 3 forks source link

Exception in bot: django.db.utils.IntegrityError: (1048, "Column 'sender_id' cannot be null") #240

Open winfried opened 12 years ago

winfried commented 12 years ago

Last lines of log of bot before exception:

2012-08-27 15:54:27,119 HelpIM3.bot DEBUG Looping until all pending events ar e processed. 2012-08-27 15:54:27,133 HelpIM3.bot INFO user with nick Heleen joined room h elpim_d19fdb8a03bb7005f0db7810d070def9004c8b24b56803f730e2d6d43cbe0dc5.0@muc.loc alhost with status: chatting 2012-08-27 15:54:27,149 HelpIM3.bot INFO user with nick training4 joined roo m helpim_d19fdb8a03bb7005f0db7810d070def9004c8b24b56803f730e2d6d43cbe0dc5.0@muc. localhost with status: chatting 2012-08-27 15:54:27,154 HelpIM3.bot INFO The second user rejoined room 'help im_d19fdb8a03bb7005f0db7810d070def9004c8b24b56803f730e2d6d43cbe0dc5.0@muc.localh ost/HelpIM'. 2012-08-27 15:54:27,170 HelpIM3.bot INFO user with nick Debby joined room he lpim_d19fdb8a03bb7005f0db7810d070def9004c8b24b56803f730e2d6d43cbe0dc5.0@muc.loca lhost with status: chatting

Formatted stack trace:

Traceback (most recent call last): File"/usr/local/bin/django-admin.py", line 5, in management.execute_from_command_line() File"/usr/local/lib/python2.6/dist-packages/django/core/management/init.py", line 429, in execute_from_command_line utility.execute() File"/usr/local/lib/python2.6/dist-packages/django/core/management/init.py", line 379, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File"/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv self.execute(_args, _options.dict) File"/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 220, in execute output = self.handle(_args, _options) File"/usr/local/lib/python2.6/dist-packages/helpim/rooms/management/commands/runbot.py", line 92, in handle bot.run() File"/usr/local/lib/python2.6/dist-packages/helpim/rooms/bot.py", line 1069, in run busy = self.stream.loop_iter(eventTimeout) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 598, in loop_iter return self._loop_iter(timeout) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 619, in _loop_iter self._process() File"/usr/lib/pymodules/python2.6/pyxmpp/streamtls.py", line 193, in _process StreamBase._process(self) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 640, in _process self._read() File"/usr/lib/pymodules/python2.6/pyxmpp/streamtls.py", line 188, in _read StreamBase._read(self) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 664, in _read self._feed_reader(r) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 680, in _feed_reader r=self._reader.feed(data) File"/usr/lib/pymodules/python2.6/pyxmpp/xmlextra.py", line 549, in feed r = self.reader.feed(s) File"/usr/lib/pymodules/python2.6/pyxmpp/xmlextra.py", line 57, in _stanza self.stanza(doc,node) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 401, in stanza self._process_node(node) File"/usr/lib/pymodules/python2.6/pyxmpp/stream.py", line 107, in _process_node StreamBase._process_node(self,xmlnode) File"/usr/lib/pymodules/python2.6/pyxmpp/streambase.py", line 713, in _process_node self.process_stanza(stanza) File"/usr/lib/pymodules/python2.6/pyxmpp/stanzaprocessor.py", line 279, in process_stanza if self.process_presence(stanza): File"/usr/lib/pymodules/python2.6/pyxmpp/stanzaprocessor.py", line 230, in process_presence return self.try_handlers(self._presence_handlers,typ,stanza) File"/usr/lib/pymodules/python2.6/pyxmpp/stanzaprocessor.py", line 187, in __try_handlers response = handler(stanza) File"/usr/lib/pymodules/python2.6/pyxmpp/jabber/muc.py", line 996, in presence_available rs.process_available_presence(MucPresence(stanza)) File"/usr/lib/pymodules/python2.6/pyxmpp/jabber/muc.py", line 590, in process_available_presence self.handler.user_joined(user,stanza) File"/usr/local/lib/python2.6/dist-packages/helpim/rooms/bot.py", line 419, in user_joined chatmessage.save() File"/usr/local/lib/python2.6/dist-packages/helpim/conversations/models.py", line 167, in save super(Message, self).save(_args, *_kwargs) File"/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 460, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File"/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 504, in save_base self.save_base(cls=parent, origin=org, using=using) File"/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 553, in save_base result = manager._insert(values, return_id=update_pk, using=using) File"/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 195, in _insert return insert_query(self.model, values, **kwargs) File"/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 1436, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File"/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.py", line 791, in execute_sql cursor = super(SQLInsertCompiler, self).execute_sql(None) File"/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.py", line 735, in execute_sql cursor.execute(sql, params) File"/usr/local/lib/python2.6/dist-packages/django/db/backends/mysql/base.py", line 86, in execute return self.cursor.execute(query, args) File"/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 166, in execute self.errorhandler(self, exc, value) File"/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in defaulterrorhandler raise errorclass, errorvalue django.db.utils.IntegrityError: (1048, "Column 'sender_id' cannot be null")

winfried commented 12 years ago

[16:16:39] and #240 looks to me like something went strangely wrong... are tokens deleted periodically / timed out? [16:17:08] Ah. That's the one I found so strange too. [16:17:24] Tokens get deleted, yes [16:17:32] That one took place during a training, there ppl might be idle for a longer period of time, while the trainer talks about something [16:17:42] You can set it at the config [16:17:42] and then they might continue the chat [16:17:49] hmmm [16:18:00] that might be a good mitigation.... [16:18:19] But IIRC the default timeout is about a day (or an hour?) [16:18:31] (looking at the surface of it, better if you confirm my suspicion)

sstrigler commented 12 years ago

This problem looks like another thing with the bot rejoining rooms and thus should be fixed by 2e1f342d2b1ef5a7169ad9916a39e5a09a796719 just like #238

winfried commented 11 years ago

Still seen once since implementing the fix.