New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on completion proposal with absent table #452

Closed
ansgarbecker opened this Issue Dec 19, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@ansgarbecker
Copy link
Collaborator

ansgarbecker commented Dec 19, 2018

Steps to reproduce this issue

  1. have a database with at least one table in it
  2. create another table you can delete afterwards: CREATE TABLE timo (id INT)
  3. refresh the database node so the new table is displayed
  4. go to the query tab and delete the just created table: DROP TABLE timo
  5. stay in the query tab, type 3 characters and press Ctrl+Space

Current behavior

Crash, due to Heidi firing SHOW CREATE TABLE timo
No dialog is shown, but the exception handler shows up.

Relevant part of the crash report:

exception class    : Unknown
exception message  : Unknown.

main thread ($2380):
00afc47e heidisql.exe dbconnection   2500 +27 TMySQLConnection.Query
772a9e79 USER32.dll                           GetMessageW
004ef858 heidisql.exe madExcept               HandleException
004fb7c1 heidisql.exe madExcept               InterceptAHandleExcept
006a7d5e heidisql.exe Vcl.Controls            TWinControl.MainWndProc
0055c463 heidisql.exe System.Classes          StdWndProc
772a98bd USER32.dll                           DispatchMessageW
0084e49e heidisql.exe Vcl.Forms               TApplication.ProcessMessage
0084e513 heidisql.exe Vcl.Forms               TApplication.HandleMessage
0084e961 heidisql.exe Vcl.Forms               TApplication.Run
00de738a heidisql.exe heidisql         85 +26 initialization

Expected behavior

Ignore missing tables. or at least silently ignore errors in such cases.

Possible solution

Probably prefix GetLastError with Self.GetLastError, as the callstack tells about GetMessageW. Or probably rename GetLastError to GetLastErrorMessage to prevent conflicts.

Environment

  • HeidiSQL version:
    v9.5.0.5408

@ansgarbecker ansgarbecker added this to the v10 milestone Dec 19, 2018

@ansgarbecker ansgarbecker added the bug label Dec 19, 2018

ansgarbecker added a commit that referenced this issue Dec 20, 2018

Issue #452: Rename TDBConnection.GetLastError to GetLastErrorMsg, due…
… to a gutt feeling the name conflicts with Windows.GetLastError in some crashes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment