I've just run the attached script about thirty times, and it succeeded 5 times and failed the rest. I've cut out a lot of unnecessary stuff, but it's still a bit long I'm afraid. I'll cut it down some more, but since you seemed so eager to see it ;-) I thought I'd send it along as is.
On a bad run, the dependency tuples look like this: DEBUG:sqlalchemy.orm.unitofwork.UOWTransaction.0x..50:Dependency sort: Mapper|User|user Mapper|Component|component Mapper|ChangeOrigin|change_origin Mapper|Label|label (cycles: [Mapper|Label|label, Mapper|ReleaseLine|release_line]) Mapper|Counter|counter Mapper|Branch|branch <sqlalchemy.orm.dependency.MapperStub object at 0x00D59590> And on a good run they look like this: DEBUG:sqlalchemy.orm.unitofwork.UOWTransaction.0x..10:Dependency sort: Mapper|User|user Mapper|Component|component Mapper|ChangeOrigin|change_origin Mapper|ReleaseLine|release_line (cycles: [Mapper|ReleaseLine|release_line, Mapper|Label|label]) Mapper|Counter|counter Mapper|Branch|branch <sqlalchemy.orm.dependency.MapperStub object at 0x00D59670> Thanks a lot for looking at this, Simon Michael Bayer wrote: > > I can actually read a fair degree from these dumps, i need > mostly to know what the actual dependencies are (i.e. which > classes are dependent on what, whats the error). also when > you do the full debug echoing the UOW should illustrate a > series of "dependency tuples" > which will show what pairs of classes the UOW perceives as > "dependent" on each other. > > On Mar 16, 2007, at 6:59 AM, King Simon-NFHD78 wrote: > > > > > Hi, > > > > I'm having a problem where the results of session.flush() vary from > > one run to another of my test suite. The unit of work > transaction dump > > is significantly different from one run to the next, similar to the > > issue in ticket 461. I haven't managed to make a test case small > > enough to post to the list yet, and I think I need to delve > a little > > further into the code to find out why it's failing. > > > > (This is with both 0.3.5 and rev2416) > > > > The logs from the UOWTransaction on a failing run and a passing run > > are below. As well as the ordering being different, there > is at least > > one class (ReleaseLine) that doesn't appear in the bad run. > > > > Unfortunately I don't know how to go about debugging this. > I think I > > need to see exactly what is going on in the dependency sort. Do you > > have any suggestions for suitable places to add some extra logging? > > > > This is a failing run: > > INFO:sqlalchemy.orm.unitofwork.UOWTransaction.0x..30:Task dump: > > > > UOWTask(0x184b2b0, Component/component/None) (save/update phase) > > | > > |- UOWTask(0x184bb50, User/user/None) (save/update phase) > > | |- Save User(0x1851870) > > | | |- Process User(0x1851870).branches > > | | |- Process User(0x1851870).reviews > > | | |- Process User(0x1851870).labels > > | | |- Process Branch(0x17ee310).user > > | | |- Process Branch(0x184b190).user > > | | > > | |- UOWTask(0x184bb70, ChangeOrigin/change_origin/None) > > (save/update phase) > > | | | |- Process Branch(0x17ee310).change_origin > > | | | |- Process Branch(0x184b190).change_origin > > | | | > > | | |- UOWTask(0x184b590, Label/label/None) > (save/update phase) > > | | | | > > | | | |- UOWTask(0x184b1b0, Branch/branch/None) > (save/update > > phase) > > | | | | |- Save Branch(0x17ee310) > > | | | | |- Save Branch(0x184b190) > > | | | | | |- Process Branch(0x17ee310).review > > | | | | | |- Process Branch(0x184b190).review > > | | | | | > > | | | | |- UOWTask(0x183f470, Review/review/None) > > (save/update phase) > > > > | | | | | |---- > > | | | | | > > | | | | | > > | | | | |- UOWTask(0x184bb30, > > <sqlalchemy.orm.dependency.MapperStub object at 0x0183FDF0>) > > (save/update phase) > > | | | | | | |- Process Branch(0x17ee310).label > > | | | | | | |- Process Branch(0x184b190).label > > | | | | | |---- > > | | | | | > > | | | | |---- > > | | | | > > | | | | > > | | | |- UOWTask(0x184bfb0, Counter/counter/None) (save/ > > update > > phase) > > | | | | |- Save Counter(0x184b0f0) > > | | | | |---- > > | | | | > > | | | |---- > > | | | > > | | |---- > > | | > > | |---- > > | > > | > > |- UOWTask(0x184bb50, User/user/None) (delete phase) > > | | > > | |- UOWTask(0x184bb70, > ChangeOrigin/change_origin/None) (delete > > phase) > > | | | > > | | |- UOWTask(0x184b590, Label/label/None) (delete phase) > > | | | | > > | | | |- UOWTask(0x184b1b0, Branch/branch/None) (delete > > phase) > > | | | | | > > | | | | |- UOWTask(0x183f470, Review/review/None) (delete > > phase) > > | | | | | |---- > > | | | | | > > | | | | | > > | | | | |- UOWTask(0x184bb30, > > <sqlalchemy.orm.dependency.MapperStub object at 0x0183FDF0>) (delete > > phase) > > | | | | | |---- > > | | | | | > > | | | | |---- > > | | | | > > | | | | > > | | | |- UOWTask(0x184bfb0, Counter/counter/None) (delete > > phase) > > | | | | |---- > > | | | | > > | | | |---- > > | | | > > | | |---- > > | | > > | |---- > > | > > |---- > > > > And on a good run looks like this: > > > > INFO:sqlalchemy.orm.unitofwork.UOWTransaction.0x..f0:Task dump: > > > > UOWTask(0x17f2610, User/user/None) (save/update phase) > > |- Save User(0x17fe9f0) > > | |- Process User(0x17fe9f0).labels > > | |- Process Branch(0x17caa10).user > > | |- Process Branch(0x17f2470).user > > | |- Process User(0x17fe9f0).reviews > > | |- Process User(0x17fe9f0).branches > > | > > |- UOWTask(0x17f2a50, ChangeOrigin/change_origin/None) > (save/update > > phase) > > | | |- Process Branch(0x17caa10).change_origin > > | | |- Process Branch(0x17f2470).change_origin > > | | > > | |- UOWTask(0x17f29f0, Component/component/None) (save/update > > phase) > > | | | > > | | |- UOWTask(0x17f2ad0, ReleaseLine/release_line/None) > > (save/update phase) > > | | | | |- Process Branch(0x17caa10).release_line > > | | | | |- Process Branch(0x17f2470).release_line > > | | | | |- Process Counter(0x17fed10).release_line > > | | | | > > | | | |- UOWTask(0x17f2430, Counter/counter/None) (save/ > > update > > phase) > > | | | | |- Save Counter(0x17fed10) > > | | | | |---- > > | | | | > > | | | | > > | | | |- UOWTask(0x17f2450, Branch/branch/None) > (save/update > > phase) > > | | | | |- Save Branch(0x17caa10) > > | | | | |- Save Branch(0x17f2470) > > | | | | | |- Process Branch(0x17caa10).review > > | | | | | |- Process Branch(0x17f2470).review > > | | | | | > > | | | | |- UOWTask(0x17faf70, Review/review/None) > > (save/update phase) > > > > | | | | | |---- > > | | | | | > > | | | | | > > | | | | |- UOWTask(0x17f2810, > > <sqlalchemy.orm.dependency.MapperStub object at 0x017DF590>) > > (save/update phase) > > | | | | | | |- Process Branch(0x17caa10).label > > | | | | | | |- Process Branch(0x17f2470).label > > | | | | | |---- > > | | | | | > > | | | | |---- > > | | | | > > | | | |---- > > | | | > > | | |---- > > | | > > | |---- > > | > > | > > |- UOWTask(0x17f2a50, ChangeOrigin/change_origin/None) (delete > > phase) > > | | > > | |- UOWTask(0x17f29f0, Component/component/None) > (delete phase) > > | | | > > | | |- UOWTask(0x17f2ad0, ReleaseLine/release_line/None) > > (delete > > phase) > > | | | | > > | | | |- UOWTask(0x17f2430, Counter/counter/None) (delete > > phase) > > | | | | |---- > > | | | | > > | | | | > > | | | |- UOWTask(0x17f2450, Branch/branch/None) (delete > > phase) > > | | | | | > > | | | | |- UOWTask(0x17faf70, Review/review/None) (delete > > phase) > > | | | | | |---- > > | | | | | > > | | | | | > > | | | | |- UOWTask(0x17f2810, > > <sqlalchemy.orm.dependency.MapperStub object at 0x017DF590>) (delete > > phase) > > | | | | | |---- > > | | | | | > > | | | | |---- > > | | | | > > | | | |---- > > | | | > > | | |---- > > | | > > | |---- > > | > > |---- > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
single_test.py
Description: single_test.py