View Full Version : Girder 3.2 Alpha 6,....
Ron
October 13th, 2002, 12:55 PM
I've release alpha 6, it fixes a memory leak in the GVMS. Let me know if you find any problems with it.
Ron
October 13th, 2002, 12:55 PM
Whoops my bad, forgot to set the tamper protection... reuploaded it.
Ron
October 13th, 2002, 12:55 PM
hmm There is only 1 queue, maybe the routing routine doesn't wake up often enough, I'll look into this. ( and the crash of course )
Ron
October 13th, 2002, 12:55 PM
The way the queue worked was that for every event i would send a windows message. I guess windows was dropping these when the windows message queue filled up ??? Now when the event routing thread receives 1 messages it will keep pulling events from the queue until its empty and only then it will go back to waiting for a windows message. Should fix the strange behaviour of non-empty threads. I have seen another memory leak, its probably in the string handling of the GVMS. This might be causing the crashes on your computer. Could you try to confirm this ?
(released alpha 7)
known bugs
* If queue is not empty and Girder is closed there might be a 'trap'
* Possible memory leak in GVMS string handling
Ron
October 13th, 2002, 12:55 PM
Ah I found another 'little' leak, the garbage collector wasn't being called every time.... :oops: This reduces the memory leak considerably!
released alpha 8
Ron
October 13th, 2002, 12:55 PM
-1 ,.. hmm i hope not ;-) should be NULL. I have a feeling where the problem might be. ( of course Win2k doesn't show me these errors ) any info from your side would be very helpfull though.
Ron
October 13th, 2002, 12:55 PM
Does the trap happen if you are running an event without the GVMS ?
Ron
October 13th, 2002, 12:55 PM
Thanks, that narrows the search a little.
Ron
October 13th, 2002, 12:55 PM
Hmmm this is giving me headaches :roll:
I've prepared a version that uses the "OutputDebugString" function on keypoints in the source. OutputDebugString sends a string to the attached debugger. Could you run Girder with a debugger attached to check what the output is ?
I downloaded windbg from here:
http://www.microsoft.com/ddk/debugging/
here is the 'special' girder version
http://www.girder.nl/temp/Girder32a8debug.zip
Thanks!
Ron
October 13th, 2002, 12:55 PM
Well isn't that nice, the default memory handling routines of delphi are not thread safe. pfffff Thanks to Mark for the enduring patience and trace reports:-) I'll be releasing an updated version very soon.
update:
alpha 9 has been released.
http://www.girder.nl/download.php?Link=279
Ron
October 13th, 2002, 12:55 PM
Oooh yeah ;-),.. now to see what is messing up the logger.
Ron
October 13th, 2002, 12:55 PM
Huythach83, could you specify both bugs, because I _can_ learn events and the volume osd works here. Report detailed steps how to reproduce the bug (also give exact version )
Ron
October 13th, 2002, 12:55 PM
Please give detailed steps that you take to learn the custom girder events.
Ron
October 13th, 2002, 12:55 PM
This is frustrating, I'm not seeing this bug :(
Could you remove all plugins from both plugin directories and try again ?
Ron
October 13th, 2002, 12:55 PM
Great, I'll check this asap! Thanks for the patience
Ron
October 13th, 2002, 12:55 PM
Thanks Mark, I'm currently extremely busy :( I hope to get around to this soon.
Stuff that is in the pipe
Completely rewrite the plugin loading and handling, this is taking longer then expected as I'm rethinking the whole concept to make it more streamlined.
Find bug in keyboard plugin
Find the ievent client problem
Find bug in learn event routines
Mark F
October 13th, 2002, 12:55 PM
I just downloaded a6 and it says it was tampered with and is not safe to use. I'll do some testing at home tonight.
Mark F
October 13th, 2002, 12:55 PM
I get a message "Girder performed an illegal operation and will be shut down" just like I did with a5. This can be after ~6 seconds or after 1 minute. It has become more random.
I'll instrument my code a bit and get a better idea of the events leading to this trap (Crash - for the Texas-speak impared :) ).
EDIT: I think I'm seeing events "stalling" in the Girder event queue. What I mean is I send 200-500 events to Girder pretty quick and then stop and some of the events are still in the queue. I think this because I then send a new event to Girder, very slowly, 10-30 times and the first copy of this new event doesn't show up until I've sent it 10-30 times. I instead get the previous event(s). It gives the appearance that the new event is added to a non-empty FIFO but only the first entry of the FIFO is released.
Mark F
October 13th, 2002, 12:55 PM
I just received a different message "Invalid pointer operation" in a window with the title GIRDER. :(
Mark F
October 13th, 2002, 12:55 PM
WOW! This is really weird. More information on the behavior I'm seeing with the Serial, User Event and Logger plugins.
The serial plugin is providing data to Girder. This data appears to be put onto the event queue but previous data is given to the command tree. (logger reports the event string and payload data from a previous event)
The GVMS is used to parse this serial data and the User Event plugin enqueues a new event to Girder. This new user event is given to the command tree!
Is there an event queue for each hardware plugin or a single event queue in 3.2a6? :-?
Mark F
October 13th, 2002, 12:55 PM
MUCH better. :D All the events seem to be going through in order.
I have received the "Illegal pointer operation". I also received "Access violation at address 0x00401c6d in module GIRDER.EXE. Read of address 0xffffffff." HOWEVER, these are very random now. I'll try to narrow these down to a set of repeatable steps, if I can. :(
EDIT: You wouldn't be using -1 to indicate the ends of your linked list, would you? ;)
Mark F
October 13th, 2002, 12:55 PM
Another tidbit or two that might be useful or might not.
The assembler code I see when this thing traps has a comparision to 0x1000(4096) near by every time. I don't know, of course, if this is comparing the size of something or the number of things but there is a comparison nearby. Also, a global variable, possibly the base of a linked list or, more likely, an array is normally involved near that comparison.
I know these are sketchy, at best, but since I see only the assembler, I'm trying to be a good detective. These could also be in a static runtime library so may not be in the code you write. :(
Mark F
October 13th, 2002, 12:55 PM
Yes, I get the trap without any GVMS actions.
Mark F
October 13th, 2002, 12:55 PM
I'll try this out as soon as I can. I have a list of "honey do"s that is pretty large for today. :( This will probably happen tomorrow.
Mark F
October 13th, 2002, 12:55 PM
I was wrong. Output on its way.
Mark F
October 13th, 2002, 12:55 PM
By Jove, I think you've got it!
This is much more stable, so far. ;)
I'll test a bit more tonight. I just heard the dreaded, "Honey ... can you come outside for a minute?" :D I'm thinking she just bought 50 or so flowers and needs help planting them.
Well done, Ron!
Mark F
October 13th, 2002, 12:55 PM
I'm having problems learning events using Girder 3.2a9 on Win NT 4. :(
I just tried learning an event from my latest Serial plugin and Girder gets a bit confused.
"Easy" steps to re-create:
Start Girder.
Enable (at least) the hardware side of the Generic Serial Support plugin.
Add a command to the tree and highlight it.
In the dropdown list, choose Generic Serial Support.
Press the Learn Event button.
At this point the serial plugin displays a dialog for input. Type in a string and click the OK button or press enter. The dialog is dismissed, Logger says the event went through, the Learn Event button is changed to Cancel Learn and the status message at the bottom says "Waiting for IR code from Generic Serial Support". Some of these happened out of order.
Mark F
October 13th, 2002, 12:55 PM
Gee, Ron, are you trying to say that Girder isn't your entire life????? :D
You are the most responsive software (free or otherwise) provider I know. I expect you will get around to this when time permits. This is a report on an *Alpha* release, bugs are expected. ;) This problem does NOT affect my production environment.
EDIT: More information. I do NOT see the same problem on my Win '98 SE machine at home. Weird.
Mark F
October 13th, 2002, 12:55 PM
Thanks but I don't use the TaskSwitch plugin. In this case, I have NO other plugins (hardware or action) enabled. :(
Ingo
October 13th, 2002, 12:55 PM
Mark,
have a look at http://www.girder.nl/phpBB2/viewtopic.php?t=1419 . Maybe its the same (or a similar) thing...
Huythach83
October 13th, 2002, 12:55 PM
In Girder 3.2 alpha, I can make Girder learn any event.
When I'm running Winamp and use Girder to control volume, although the OSD option is turn on, no OSD pop up on screen.
Huythach83
October 13th, 2002, 12:55 PM
Oops, my mistake, I mean that I can't make Girder 3.2 alpha learn any event, not "can" :oops:
Huythach83
October 13th, 2002, 12:55 PM
I'm using Girder 3.1.2e when I overwrite all file in Girder folder with the file in Girder 3.2 alpha 9 zip file. I change nothing and then I cant make Girder learn any event (at least I can't make Girder learn custom Girder Event). My previous version of Girder is working properly.
I only use these plugin:
* Hardware
- DVDSpy
- Keyboard
* Software
- Alarm timer
- OSD PopUp
- OSD Menu
All are latest version
Huythach83
October 13th, 2002, 12:55 PM
I did these steps to re-make the problem:
1. Run Girder 3.2 alpha 9. (of course ;))
2. Make new command (I choose Add command from popup menu).
3. If you choose All from the combo box next to Learn Event button, press Learn Event and press a key (on keyboard, in my case), there's no problem.
4. But if you choose Girder event from the combo box, press Learn Event button, type your command string (Not Girder default event, ex: 1234) and press Select, the dialoge disappear, butLearn Event button don't change state from Cancel Learn to Learn event.
5. After that. Girder can_not learn any event. It also don't receive any input string like before.
6. If you close Girder and run it again, everything back to normal.
The OSD problem is related to the problem I show above
Hope you can find out what is wrong with me (or Girder).
Huythach83
October 13th, 2002, 12:55 PM
I've do that. The problem is from the keyboard plugin (the original one, from you). When it loaded, the problem appear
Huythach83
October 13th, 2002, 12:55 PM
There another problem with built in OSD of Girder 3.2 alpha 9. I have Winamp loaded with DVDSpy general plugin. When I playing in Winamp, my volume OSD doesn't show up (although before Winamp load and play, it work normally)
Powered by vBulletin® Version 4.1.8 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.