Comment 5 for bug 322887

Revision history for this message
Marc Tardif (cr3) wrote :

After running the appserver with the trace module and the -t argument, python -m trace -t, and disabling the mail queue delivery to prevent repetitive calls from being made, the following few lines are output last. I'm still not sure if this provides further insight into the problem but worth noting for now.

...
postgres.py(199): return compile_sql_token(compile, expr, state)
 --- modulename: expr, funcname: compile_sql_token
expr.py(1284): if is_safe_token(expr) and not compile.is_reserved_word(expr):
expr.py(1285): return expr
info.py(247): if state.context is TABLE and issubclass(expr, ClassAlias):
info.py(249): return table
 --- modulename: expr, funcname: <genexpr>
expr.py(538): tables = set(compile(table, state, token=True) for table in tables)
 --- modulename: info, funcname: compile_type
info.py(245): cls_info = get_cls_info(expr)
 --- modulename: info, funcname: get_cls_info
info.py(47): if "__storm_class_info__" in cls.__dict__:
info.py(49): return cls.__dict__["__storm_class_info__"]
info.py(246): table = compile(cls_info.table, state)
 --- modulename: postgres, funcname: compile_sql_token_postgres
postgres.py(196): if "." in expr and state.context in (TABLE, COLUMN_PREFIX):
postgres.py(199): return compile_sql_token(compile, expr, state)
 --- modulename: expr, funcname: compile_sql_token
expr.py(1284): if is_safe_token(expr) and not compile.is_reserved_word(expr):
expr.py(1285): return expr
info.py(247): if state.context is TABLE and issubclass(expr, ClassAlias):
info.py(249): return table
 --- modulename: expr, funcname: <genexpr>
expr.py(538): tables = set(compile(table, state, token=True) for table in tables)
expr.py(539): return ", ".join(sorted(tables))
expr.py(641): parameters = state.parameters
expr.py(642): state.pop()
 --- modulename: expr, funcname: pop
expr.py(262): setattr(self, *self._stack.pop(-1))
expr.py(643): state.parameters[parameters_pos:parameters_pos] = parameters
expr.py(644): state.pop()
 --- modulename: expr, funcname: pop
expr.py(262): setattr(self, *self._stack.pop(-1))
expr.py(645): state.pop()
 --- modulename: expr, funcname: pop
expr.py(262): setattr(self, *self._stack.pop(-1))
expr.py(646): return "".join(tokens)
database.py(201): params = state.parameters
database.py(202): statement = convert_param_marks(statement, "?", self.param_mark)
 --- modulename: database, funcname: convert_param_marks
database.py(380): if from_param_mark == to_param_mark or from_param_mark not in statement:
database.py(382): tokens = statement.split("'")
database.py(383): for i in range(0, len(tokens), 2):
database.py(384): tokens[i] = tokens[i].replace(from_param_mark, to_param_mark)
database.py(383): for i in range(0, len(tokens), 2):
database.py(385): return "'".join(tokens)
database.py(203): raw_cursor = self.raw_execute(statement, params)
 --- modulename: postgres, funcname: raw_execute
postgres.py(290): if type(statement) is unicode:
postgres.py(292): statement = statement.encode("UTF-8")
postgres.py(293): return Connection.raw_execute(self, statement, params)
 --- modulename: database, funcname: raw_execute
database.py(276): raw_cursor = self.build_raw_cursor()
 --- modulename: database, funcname: build_raw_cursor
database.py(263): return self._raw_connection.cursor()
database.py(277): trace("connection_raw_execute", self, raw_cursor,
database.py(278): statement, params or ())
 --- modulename: tracer, funcname: trace
tracer.py(90): for tracer in _tracers:
tracer.py(91): attr = getattr(tracer, name, None)
tracer.py(92): if attr:
tracer.py(93): attr(*args, **kwargs)
 --- modulename: stormtracer, funcname: connection_raw_execute
stormtracer.py(16): now = time.time()
stormtracer.py(17): for entry in OOPSStorm.get_for_tracing():
 --- modulename: stormtracer, funcname: get_for_tracing
stormtracer.py(67): for entry in self._global:
 --- modulename: weakref, funcname: __iter__
weakref.py(309): return self.iterkeys()
 --- modulename: weakref, funcname: iterkeys
weakref.py(303): for wr in self.data.iterkeys():
stormtracer.py(69): try:
stormtracer.py(70): for entry in self._local.logs:
 --- modulename: weakref, funcname: __iter__
weakref.py(309): return self.iterkeys()
 --- modulename: weakref, funcname: iterkeys
weakref.py(303): for wr in self.data.iterkeys():
weakref.py(304): obj = wr()
weakref.py(305): if obj is not None:
weakref.py(306): yield obj
stormtracer.py(71): yield entry
stormtracer.py(18): entry.connection_raw_execute(now, connection, raw_cursor,
stormtracer.py(19): statement, params)
 --- modulename: stormtracer, funcname: connection_raw_execute
stormtracer.py(79): params = tuple(repr((isinstance(param, Variable) and
stormtracer.py(81): for param in params)
 --- modulename: stormtracer, funcname: <genexpr>
stormtracer.py(79): params = tuple(repr((isinstance(param, Variable) and
 --- modulename: stormtracer, funcname: <genexpr>
stormtracer.py(82): self._statements.append([statement, params, now, None, None])
stormtracer.py(17): for entry in OOPSStorm.get_for_tracing():
 --- modulename: stormtracer, funcname: get_for_tracing
stormtracer.py(70): for entry in self._local.logs:
 --- modulename: weakref, funcname: iterkeys
weakref.py(303): for wr in self.data.iterkeys():
tracer.py(90): for tracer in _tracers:
database.py(279): if params:
database.py(280): args = (statement, tuple(self.to_database(params)))
 --- modulename: postgres, funcname: to_database
postgres.py(301): for param in params:
postgres.py(302): if isinstance(param, Variable):
postgres.py(303): param = param.get(to_db=True)
postgres.py(304): if isinstance(param, (datetime, date, time, timedelta)):
postgres.py(306): elif isinstance(param, unicode):
postgres.py(308): elif isinstance(param, str):
postgres.py(309): yield psycopg2.Binary(param)
 --- modulename: postgres, funcname: to_database
postgres.py(301): for param in params:
database.py(283): try:
database.py(284): self._check_disconnect(raw_cursor.execute, *args)
 --- modulename: database, funcname: _check_disconnect
database.py(324): try:
database.py(325): return function(*args, **kwargs)