mika Posted October 4, 2016 Posted October 4, 2016 We have developed fairly large application using UniGUI and it has worked great for the most part. However, now we have a pretty big problem because our application froze and log entries don't tell us enough to resolve this issue. We are running our application as a standalone executable. Below is last lines of log. Problem started on line 11 and after that, all our users got disconnected and were unable to reconnect to application. Any and all help would be greatly appreciated. app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:FLastSequence set:338 app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:iSeq: Id: 339, Evt: move, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:Processing: Id: 339, Evt: move app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:Processed: Id: 339, Evt: move, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:FLastSequence set:339 app.exe: 00000390: 15.29.38 [IP_HIDDEN_1]:iSeq: Id: 340, Evt: resize, [YgFHxzdG54FE331C0B] app.exe: 00000390: 15.29.38 [IP_HIDDEN_1]:Processing: Id: 340, Evt: resize app.exe: 00000390: 15.29.38 [IP_HIDDEN_1]:Processed: Id: 340, Evt: resize, [YgFHxzdG54FE331C0B] app.exe: 00000390: 15.29.38 [IP_HIDDEN_1]:FLastSequence set:340 app.exe: 00001474: 15.29.38 [IP_HIDDEN_1]:iSeq: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:Sequence Error Timeout : TDiff:10015, Event: activate, Expected: 341, Received: 342, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:Failed Sequence Reset to: 341 app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:Rejected Sequence : 342, Expected: 341, RecoverFailureTimeout: 90000, FTime: 0 app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:Processed: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001318: 15.29.48 [IP_HIDDEN_2]:Processing: Id: -1, Evt: app.exe: 00001318: 15.29.48 [IP_HIDDEN_2]:Processed: Id: -1, Evt: , [npFRqhyt5EFE33249A] app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:iSeq: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.48 [IP_HIDDEN_1]:Failed Sequence Recovery: SeqId: 342, Event: activate, Status: 401, StatusText: "Unauthorized", TimedOut: false, cQs: f:{}, s:{345,346}, a:{}, r:{} app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Failed Sequence Recovery : TDiff:2016, Event: activate, Expected: 341, Received: 342, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Rejected Sequence : 342, Expected: 341, RecoverFailureTimeout: 90000, FTime: 2141 app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Processed: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.29.50 [IP_HIDDEN_1]:iSeq: Id: 341, Evt: deactivate, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.29.50 [IP_HIDDEN_1]:Processing: Id: 341, Evt: deactivate app.exe: 00001744: 15.29.50 [IP_HIDDEN_1]:Processed: Id: 341, Evt: deactivate, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.29.50 [IP_HIDDEN_1]:FLastSequence set:341 app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:iSeq: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Failed Sequence Recovery: SeqId: 342, Event: activate, Status: 401, StatusText: "Unauthorized", TimedOut: false, cQs: f:{}, s:{345,346}, a:{}, r:{} app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Processing: Id: 342, Evt: activate app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:Processed: Id: 342, Evt: activate, [YgFHxzdG54FE331C0B] app.exe: 00001474: 15.29.50 [IP_HIDDEN_1]:FLastSequence set:342 app.exe: 00001334: 15.29.50 [IP_HIDDEN_1]:iSeq: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:Sequence Error Timeout : TDiff:10016, Event: columnresize, Expected: 343, Received: 344, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:Failed Sequence Reset to: 343 app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:Rejected Sequence : 344, Expected: 343, RecoverFailureTimeout: 90000, FTime: 0 app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:Processed: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:iSeq: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.00 [IP_HIDDEN_1]:Failed Sequence Recovery: SeqId: 344, Event: columnresize, Status: 401, StatusText: "Unauthorized", TimedOut: false, cQs: f:{}, s:{}, a:{}, r:{} app.exe: 00001334: 15.30.02 [IP_HIDDEN_1]:Failed Sequence Recovery : TDiff:2016, Event: columnresize, Expected: 343, Received: 344, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.02 [IP_HIDDEN_1]:Rejected Sequence : 344, Expected: 343, RecoverFailureTimeout: 90000, FTime: 2047 app.exe: 00001334: 15.30.02 [IP_HIDDEN_1]:Processed: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 000017CC: 15.30.02 [IP_HIDDEN_3]:iSeq: Id: 2066, Evt: timer, [RpIzHBHBsnFE330F0A] app.exe: 000017CC: 15.30.12 [IP_HIDDEN_3]:Sequence Error Timeout : TDiff:10016, Event: timer, Expected: 2064, Received: 2066, [RpIzHBHBsnFE330F0A] app.exe: 000017CC: 15.30.12 [IP_HIDDEN_3]:Failed Sequence Reset to: 2064 app.exe: 000017CC: 15.30.12 [IP_HIDDEN_3]:Rejected Sequence : 2066, Expected: 2064, RecoverFailureTimeout: 90000, FTime: 0 app.exe: 000017CC: 15.30.12 [IP_HIDDEN_3]:Processed: Id: 2066, Evt: timer, [RpIzHBHBsnFE330F0A] app.exe: 00001574: 15.30.12 [IP_HIDDEN_1]:iSeq: Id: 1248, Evt: update_idle_time, [6536otWzlqFE330899] app.exe: 00001574: 15.30.12 [IP_HIDDEN_1]:Processing: Id: 1248, Evt: update_idle_time app.exe: 00001574: 15.30.12 [IP_HIDDEN_1]:Processed: Id: 1248, Evt: update_idle_time, [6536otWzlqFE330899] app.exe: 00001574: 15.30.12 [IP_HIDDEN_1]:FLastSequence set:1248 app.exe: 00001334: 15.30.12 [IP_HIDDEN_1]:iSeq: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.12 [IP_HIDDEN_1]:Failed Sequence Recovery: SeqId: 344, Event: columnresize, Status: 401, StatusText: "Unauthorized", TimedOut: false, cQs: f:{}, s:{}, a:{}, r:{} app.exe: 00001334: 15.30.15 [IP_HIDDEN_1]:Failed Sequence Recovery : TDiff:2016, Event: columnresize, Expected: 343, Received: 344, [YgFHxzdG54FE331C0B] app.exe: 00001334: 15.30.15 [IP_HIDDEN_1]:Rejected Sequence : 344, Expected: 343, RecoverFailureTimeout: 90000, FTime: 14156 app.exe: 00001334: 15.30.15 [IP_HIDDEN_1]:Processed: Id: 344, Evt: columnresize, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.15 [IP_HIDDEN_1]:iSeq: Id: 345, Evt: tabchange, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.25 [IP_HIDDEN_1]:Sequence Error Timeout : TDiff:10015, Event: tabchange, Expected: 343, Received: 345, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.25 [IP_HIDDEN_1]:Rejected Sequence : 345, Expected: 343, RecoverFailureTimeout: 90000, FTime: 24187 app.exe: 00001744: 15.30.25 [IP_HIDDEN_1]:Processed: Id: 345, Evt: tabchange, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.25 [IP_HIDDEN_1]:iSeq: Id: 345, Evt: tabchange, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.25 [IP_HIDDEN_1]:Failed Sequence Recovery: SeqId: 345, Event: tabchange, Status: 401, StatusText: "Unauthorized", TimedOut: false, cQs: f:{}, s:{}, a:{347,348,349,350,351}, r:{} app.exe: 00001744: 15.30.27 [IP_HIDDEN_1]:Failed Sequence Recovery : TDiff:2016, Event: tabchange, Expected: 343, Received: 345, [YgFHxzdG54FE331C0B] app.exe: 00001744: 15.30.27 [IP_HIDDEN_1]:Rejected Sequence : 345, Expected: 343, RecoverFailureTimeout: 90000, FTime: 26234 app.exe: 00001744: 15.30.27 [IP_HIDDEN_1]:Processed: Id: 345, Evt: tabchange, [YgFHxzdG54FE331C0B] app.exe: 0000165C: 15.30.27 [IP_HIDDEN_4]:iSeq: Id: 272, Evt: timer, [LvYRmoMHWFFE330F05] app.exe: 0000165C: 15.30.37 [IP_HIDDEN_4]:Sequence Error Timeout : TDiff:10015, Event: timer, Expected: 269, Received: 272, [LvYRmoMHWFFE330F05] app.exe: 0000165C: 15.30.37 [IP_HIDDEN_4]:Failed Sequence Reset to: 269 app.exe: 0000165C: 15.30.37 [IP_HIDDEN_4]:Rejected Sequence : 272, Expected: 269, RecoverFailureTimeout: 90000, FTime: 0 app.exe: 0000165C: 15.30.37 [IP_HIDDEN_4]:Processed: Id: 272, Evt: timer, [LvYRmoMHWFFE330F05] Quote
Administrators Farshad Mohajeri Posted October 4, 2016 Administrators Posted October 4, 2016 Hi It is your connection log. Can you share app log also? Quote
mika Posted October 4, 2016 Author Posted October 4, 2016 Version is 0.99.96.1322 App log didn't have any entires at all at the time of problems. I can't share it because it contains lot of custom logged sensitive information. Quote
Administrators Farshad Mohajeri Posted October 4, 2016 Administrators Posted October 4, 2016 Can you upgrade to latest build? Quote
Administrators Farshad Mohajeri Posted October 4, 2016 Administrators Posted October 4, 2016 We have developed fairly large application using UniGUI and it has worked great for the most part. However, now we have a pretty big problem because our application froze and log entries don't tell us enough to resolve this issue. We are running our application as a standalone executable. Below is last lines of log. Problem started on line 11 and after that, all our users got disconnected and were unable to reconnect to application. Any and all help would be greatly appreciated. You need to share more information. For example, what happened or what changed before your app started freezing. How many concurrent users connect to your app? Memory usage. Have you used stress test tool to test your app? Quote
mika Posted October 5, 2016 Author Posted October 5, 2016 Yes. I undestand that I have to share information but before I do, I must cleanup my entries from log file. I have stress tested app and it shouldn't be the issue. I managed to track down problem and it seems probable that it's my code which caused the freezing. It's very weird one though; whole application will freeze on line "DataSet.Next;". To be more precise, application itself does not really freeze but database connection does. Code in question is not particularly complex and I couldn't figure out why this is happening although I managed to fix problem by using different technique to update database. So, it seems the problem is solved. Thank to all of you for prompt responses. --Mika Quote
Administrators Farshad Mohajeri Posted October 5, 2016 Administrators Posted October 5, 2016 What is your database engine? Since each session has its own private connection, a frozen DB connection should only affect current session, but other sessions should continue working. Quote
mika Posted October 5, 2016 Author Posted October 5, 2016 We use SQL Server 2014 Express Edition. And yes, I also wondered why whole application froze like that but I haven't had time to investigate it further. We currently have only few business clients and all of them use their own databases and there aren't any shared databases between clients. Only one server instance is used, though. Quote
Administrators Farshad Mohajeri Posted October 5, 2016 Administrators Posted October 5, 2016 I assume that your ADOConnection component is placed on uniGUI MainModule, so each session will have its private connection to the SQL server. You may check this again. Quote
mika Posted October 5, 2016 Author Posted October 5, 2016 Actually, we use FireDAC and FD components are placed in datamodule. We haven't had any issues between connections before and everything is working okay. Quote
Administrators Farshad Mohajeri Posted October 5, 2016 Administrators Posted October 5, 2016 datamodule What sort of DataModule is this? Is it a standard Delphi DataModule? Quote
Administrators Farshad Mohajeri Posted October 5, 2016 Administrators Posted October 5, 2016 There are two places which are safe to put a Connection or any other resource: 1) MainModule 2) A DataModule which is created using uniGUI Application Wizard. A standard DataModule is not safe for a Connection or any other shared resource. In fact, a Delphi Datamodule should never be used inside a unigui app. If your DM is a standard DM then it explains why your whole app freezes when your connection is busy. Quote
mika Posted October 5, 2016 Author Posted October 5, 2016 I created datamodule using UniGUI wizard. It seems to be UniGUI controlled as there is function to return TDataModule instance. Quote
Administrators Farshad Mohajeri Posted October 5, 2016 Administrators Posted October 5, 2016 I created datamodule using UniGUI wizard. It seems to be UniGUI controlled as there is function to return TDataModule instance. OK. In this case it should work as expected. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.