On 9/16/15 8:05 PM, dewey wrote:
Hey Mike,
I've found and fixed (with help) my problem, but I thought I'd describe it here to support anyone else who hits this...
Was not a threading issue......it was a combination of:

  * data-edge case
  * bug in our code
  * bug in how SA was reporting a failure...

I was adding a model object to the session as follows:

    rec = get_or_create(sess, CtrAtt, ctrAttSearchVals, ctrAttNewVals )

    sess.add(rec)



thank you

I've captured a test case for this at https://bitbucket.org/zzzeek/sqlalchemy/issues/3535/flush-error-suppressed-when-rollback-fails



next I was looking up a record that was needed as an FKEY to the CtrAtt record I just put in the session (oops.....our bug)

    cot = sess.query(ContribTitle).get(int(cot_gem_id))


That query was of course flushing the session...but the record sought via "ContribTitle" was not found (the data-edge case)

When SA saw the FKEY integrity error, it was attempting to roll-back the transaction.....and it was not showing the DB Integrity error....

Somewhere in that process, SA attempted to access a null "impl" object and confusingly throwing the:

'NoneType' object has no attribute 'accepts_scalar_loader'

Regards,
Dewey





On Wednesday, September 16, 2015 at 6:24:47 PM UTC-5, Michael Bayer wrote:

    check out this case, this is one way to reproduce that:

    
https://bitbucket.org/zzzeek/sqlalchemy/issues/3532/detect-property-being-assigned-to-more
    
<https://bitbucket.org/zzzeek/sqlalchemy/issues/3532/detect-property-being-assigned-to-more>



    On 9/15/15 3:56 PM, dewey wrote:
    I'll see if I can reproduce this in a simple example.....it's
    currently in a job being run every night from a Celery-Beat
    scheduler......

    Interestingly, just changing the data in the DB made this problem
    go away temporarily.......we were seeing this error thrown every
    night on staging for 5 days straight,
    But after we copied the Prod data into staging, it went away for
    about a week.....

    This morning, it threw on both staging and prod......first time
    we've seen it in Prod....

    Thanks for your thoughts...
    Dewey
-- You received this message because you are subscribed to the
    Google Groups "sqlalchemy" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to sqlalchemy+...@googlegroups.com <javascript:>.
    To post to this group, send email to sqlal...@googlegroups.com
    <javascript:>.
    Visit this group at http://groups.google.com/group/sqlalchemy
    <http://groups.google.com/group/sqlalchemy>.
    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.

--
You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy+unsubscr...@googlegroups.com>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to