mrdnaParticipantDecember 1, 2009 at 7:07 amPost count: 220
(moving this to here from getsatisfaction.com. Didn’t feel right posting about a crash involving about the biggest feature of the program in an open venue probably visited by newbie users. Also, putting it here in a restricted forum will allow Maurizio to tell me it’s unique to my computer and I should re-format the piece of shit or else he’ll ban me from every bug reporting site in the Tabble’s universe…)
Crash on creating an auto-tag rule in a db that does not already have rules. Loaded and was working with and testing a new structure. Trying to invoke edit>auto-tagging rules crashed to desktop. Also created a new folder, tagged it in tabbles, got the auto-tag rule create box. Going back to edit>auto-tag rules still crashed. (rule/tag was not present when rebooting program.
My primary db (that has rules already) works fine. No problems there.
Crash dialogue from Tabbles:
Code version: 1.3.3
——————– Level 0 ————-
Exception type = System.Exception
Message = Assumption violated. Assumption ID = "Formula not found = test tree. Message = The given key was not present in the dictionary."
StackTrace = at Tabbles_logic.fallisci2[a](String msg)
at Tabbles_logic.getDataOfFormula(formula_key fk)
at [email protected](String lab, Boolean premettiVirgola, TextBlock lbl)
at [email protected](Int32 i, String lab)
at [email protected][T](FSharpFunc`3 f, Int32 n, FSharpList`1 x)
at Microsoft.FSharp.Primitives.Basics.List.iteri[T](FSharpFunc`2 action, FSharpList`1 x)
at Microsoft.FSharp.Collections.ListModule.IterateIndexed[T](FSharpFunc`2 action, FSharpList`1 list)
at [email protected](rule ru, TextBlock lbl)
at [email protected](rule ru, TextBlock lbl)
at Tabbles_logic.db.fillTextBlockWithRule(TextBlock lbl, rule ru)
at Tabbles_logic.rulesDialog.fillListbox…(rule ru)
at Microsoft.FSharp.Primitives.Basics.List.iter[T](FSharpFunc`2 f, FSharpList`1 x)
at Microsoft.FSharp.Collections.ListModule.Iterate[T](FSharpFunc`2 action, FSharpList`1 list)
at Tabbles_logic.uiOpenRuleDialog(FSharpOption`1 mRuleToEdit)
at [email protected]…(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
MaurizioParticipantDecember 4, 2009 at 1:24 pmPost count: 196
Hi mrdna, thanks for your help.
I can’t reproduce the problem. However, the error log you sent me tells me that it isn’t true that you do not have any rules defined. It seems you do have at least one rule. The crash happens when Tabbles is trying to create the list-item for that rule.
The problem seems to be that the rule assigns the file to a tabble that does not exist anymore, but has existed in the past, called "test tree". If you create a tabble with the same name, it should work again. Do you confirm?
However you have indeed found a bug. But I cannot see how you managed to delete a tabble without deleting the rule which applies that tabble. I had already managed the situation: each time you delete a tabble, I alredy delete all rules which assign that tabble. So I cannot see how you managed to get it crashing.
mrdnaParticipantDecember 4, 2009 at 8:02 pmPost count: 220
That tabble "test tree" exists in my primary db and it or an associated rule was never part of the other DBs where it’s crashing. I have created (and deleted, and created…. when testing) a rule in the primary DB associated with the tabble, but not in the other DBs.
All 3 of the DBs/structures where it’s crashing has never had any rules created, nor a tabble called test tree. I assumed it was some sort of corruption or ‘spill-over’ from the primary DBs rule set; perhaps when I attempted to create the first rule in a new DB that it was looking for previous rule entries and ‘found’ some, though in the wrong place.
So basically, Maurizio, only the primary DB has -ever- had any rules -or- the tabble ‘test tree’.
I’ll try your idea of creating a test tree tabble in the new DB when I get home tonite. Hadn’t thought of that.
mrdnaParticipantDecember 5, 2009 at 3:59 amPost count: 220
Ok, more info on this…
Added the tabble ‘test tree’ to one of the crashing DBs. Still crashed but is now asking for the ‘2009’ tabble, another one that was never present there.
Took the grand tour of all my DBs and XMLs – most XMLs will not load and give an ‘invalid’ error. (encryption lacking?) Only xml that will load was saved 11/14. It will, however, crash when trying to access the rules menu. (downloaded the bills one I’d uploaded here in the Community area and it is considered invalid as well)
Of all the DB files only 2 are crashing; the writing one and a contractor DB. Neither had rule sets nor did I use them for any testing. (Last saved 11/10 and 11/29 respectively)
All my lab rats, incremental backups and derivatives of my primary DB (rules or not) work fine. (lab rats all saved prior to 10/19, incrimentals and derivatives span Sept thru 12/4)
Just tried another workaround – Exported the structure from the writing DB. Closed and reloaded Tabbles. Imported the writing structure, (no problem, loaded, no files of course). Hit the rules button. Crash. Same error, looking for test tree…
I’m at a loss, especially as it still crashes the same when transferring the structure only! (I’ll attach it in case you want to see if it crashes on you) The only thing I can think of is that something is making a call out to a file it shouldn’t be, or is confused in some other manner. I just can’t figure it.
With it happening to only 2 files I can accept that it’s something unique to me, but it still means that I’ll have to rebuild several structures I was hoping to upload here eventually, and completely recreate my writing DB. 😥 That one’s gonna suck real bad but at least it wasn’t my political DB, that would’ve been a truly massive loss.
Anyways, don’t worry about it, Maurizio, you have better things to do…
MaurizioParticipantDecember 5, 2009 at 6:50 pmPost count: 196
I see in the db you attached there are 7 bad rules. So it is a corrupted DB. I still don’t understand how you managed to produce it (maybe it is a problem caused by an earlier version of tabbles, which did not clear the rules when you imported a new database, so you ended up having rules which you shouldn’t have had).
Anyway, in version 1.3.7 I added an integrity check to deal with your problem. Here’s what you can do: download and install version 1.3.7, choose tools > advanced > remove errors in db. 7 bad rules will be removed. ( I just tried). And from then on, your DB will be sound (= not corrupted). Then you have will be able to work.
If, after doing this, you are still able to make it crash, please let me know. Thank you. 🙂
mrdnaParticipantDecember 5, 2009 at 11:28 pmPost count: 220
That did the trick, Maurizio. Thank you VERY much! Went through my dbs and strs and those were the only 2 with errors. Not a clue as to how they got corrupted, but it’s great to have the fix. FWIW, I did notice that Tabbles changed from installing in the program files (x86) dir to the regular program files dir the beginning of November. Corroboration doesn’t mean causality, but thought it worth mentioning.
BTW, any way to get the DB name in the program title bar? Certainly not a big deal but would be nice eventually.
You rock, Mr M! Thanks again.
You must be logged in to reply to this topic.