Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2019-04

Lots of access violations with TSQLConnection TSQLQuery on Linux

8 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Anthony Walter

I don't normally use the Lazarus MS SQL components, but tried using them today on Ubuntu Linux and keep experiencing lots of random access violations. I wanted to know if this is a normal thing, or if perhaps the state of these components is fragile on Linux.

Here is what is happening.

I can place the TSQLConnection, TSQLTransaction, TSQLQuery, TDataSource and data aware controls on a form and connect to the database at design time. It works fine. I can run my program and I can view and edit records just fine. But if I change any part of TSQLQuery down to TSQLConnection setting Active to False, then I get access violations.

This is particularly problematic because certain changes to component properties require Active to be set to False, such as editing SQL. And very often, though not always, changing the Active property results in access violations. And after an AV happens then things start misbehaving in the IDE.

Is this a common problem for some people on Linux using the MS SQL components? Am I doing something wrong? Are there people her who have worked with MS SQL components on Linux much and is familiar with this problem?

Thank you.
Anthony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20190403/f813a412/attachment-0001.html>

Reply by email

Sven Barth
to Anthony Walter

Anthony Walter via lazarus schrieb am Do.,
4. Apr. 2019, 02:15:

Show quoted text 24 lines
I don't normally use the Lazarus MS SQL components, but tried using them today on Ubuntu Linux and keep experiencing lots of random access violations. I wanted to know if this is a normal thing, or if perhaps the state of these components is fragile on Linux. Here is what is happening. I can place the TSQLConnection, TSQLTransaction, TSQLQuery, TDataSource and data aware controls on a form and connect to the database at design time. It works fine. I can run my program and I can view and edit records just fine. But if I change any part of TSQLQuery down to TSQLConnection setting Active to False, then I get access violations. This is particularly problematic because certain changes to component properties require Active to be set to False, such as editing SQL. And very often, though not always, changing the Active property results in access violations. And after an AV happens then things start misbehaving in the IDE. Is this a common problem for some people on Linux using the MS SQL components? Am I doing something wrong? Are there people her who have worked with MS SQL components on Linux much and is familiar with this problem?

Just to be sure: do you have the necessary library installed on your system? See here: http://wiki.freepascal.org/mssqlconn#Installation

Regards,
Sven

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20190404/ee0aa8c7/attachment.html>

Reply by email

Michael Van Canneyt
to Anthony Walter: I don't normally use the Lazarus MS SQL components, but tried using them today on Ubuntu…
Anthony Walter wrote 23 lines
I don't normally use the Lazarus MS SQL components, but tried using them today on Ubuntu Linux and keep experiencing lots of random access violations. I wanted to know if this is a normal thing, or if perhaps the state of these components is fragile on Linux. Here is what is happening. I can place the TSQLConnection, TSQLTransaction, TSQLQuery, TDataSource and data aware controls on a form and connect to the database at design time. It works fine. I can run my program and I can view and edit records just fine. But if I change any part of TSQLQuery down to TSQLConnection setting Active to False, then I get access violations. This is particularly problematic because certain changes to component properties require Active to be set to False, such as editing SQL. And very often, though not always, changing the Active property results in access violations. And after an AV happens then things start misbehaving in the IDE. Is this a common problem for some people on Linux using the MS SQL components? Am I doing something wrong? Are there people her who have worked with MS SQL components on Linux much and is familiar with this problem?

This is not normal. I have not used the MS SQL Connector on linux, but I have used it on windows, and I have not experienced such things.

Can you post a stack trace so we can analyze the problem ?

Michael.

Reply by email

Anthony Walter
to Michael Van Canneyt

Sven,

I am fairly confident that I have all the required libraries installed and configured correctly. Everything works fine, including reading data from my remote server and applying updates. The exception is that if at design time I change the Active property of any data related non visual component, then I get an AV. Also, I did follow the instructions or guide on that page prior to your suggestion and ti helped me connect to my remote server.

Michael,

To be sure I have the correct sources, I tried this twice. Once with my current Lazarus, and again with svn fixes_2_0 Lazarus. Both exhibit the same behavior and stack trace. Here is a screenshot of the error and the stack trace. I simply opened the my project, set the SQL query Active property to False, and I get this error.

https://cache.getlazarus.org/images/sql-linux-av.jpg

Stack trace:

~$ sudo gdb -batch -ex bt -p 29126

[New LWP 29127]
[New LWP 29128]
[New LWP 29129]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007fb9b9ed374d in poll () at ../sysdeps/unix/syscall-template.S:84 84 ../sysdeps/unix/syscall-template.S: No such file or directory. #0 0x00007fb9b9ed374d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004ea81c in GTK2POLLFUNCTION (UFDS=0x3858b80, NFSD=5, TIMEOUT=50) at gtk2/gtk2widgetset.inc:44
#2 0x00007fb9bad9238c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fb9bad92712 in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007fb9bb371b83 in gtk_dialog_run () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#5 0x000000000050c264 in PROMPTUSER (this=0x7fb9bc6fa310, DIALOGCAPTION=0x137b180 "Error", DIALOGMESSAGE=0x7fb994e803d8 "Access violation", DIALOGTYPE=257, BUTTONS=0x7fb9a8943c60, BUTTONCOUNT=1, DEFAULTINDEX=0, ESCAPERESULT=2) at gtk2/gtk2lclintf.inc:1271 #6 0x00000000005b982d in PROMPTUSER (DIALOGCAPTION=0x137b180 "Error", DIALOGMESSAGE=0x7fb994e803d8 "Access violation", DIALOGTYPE=257, BUTTONS=0x7fb9a8943c60, BUTTONCOUNT=1, DEFAULTINDEX=0, ESCAPERESULT=2) at include/lclintf.inc:376
#7 0x000000000057ae91 in MESSAGEDLG (ACAPTION=0x137b180 "Error", AMSG=0x11fdc10 "Access violation", DLGTYPE=MTERROR, BUTTONS=..., HELPCTX=0) at include/messagedialogs.inc:148
#8 0x00000000008d5937 in SETROWVALUE (this=0x7fb994a87930, CHECKFOCUS=true, FORCEVALUE=true) at objectinspector.pp:1602 #9 0x00000000008d65c3 in VALUECHECKBOXCLICK (this=0x7fb994a87930, SENDER=0x7fb994a88d90) at objectinspector.pp:1764
#10 0x0000000000cc7e33 in SETSTATE (this=0x7fb994a88d90, AVALUE=CBUNCHECKED) at checkboxthemed.pas:475
#11 0x0000000000cc7d14 in SETCHECKED (this=0x7fb994a88d90, AVALUE=false) at checkboxthemed.pas:460
#12 0x00000000008d86a5 in SETITEMINDEXANDFOCUS (this=0x7fb994a87930, NEWITEMINDEX=0, WASVALUECLICK=true) at objectinspector.pp:2295 #13 0x00000000008d8a30 in MOUSEDOWN (this=0x7fb994a87930, BUTTON=MBLEFT, SHIFT=..., X=184, Y=7) at objectinspector.pp:2399
#14 0x00000000005a1998 in DOMOUSEDOWN (this=0x7fb994a87930, MESSAGE=..., BUTTON=MBLEFT, SHIFT=...) at include/control.inc:2283 #15 0x00000000005a1fd9 in WMLBUTTONDOWN (this=0x7fb994a87930, MESSAGE=...) at include/control.inc:2462
#16 0x0000000000431bca in SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal () #17 0x00007fb994a87930 in ?? ()
#18 0x00007fff33fc7e10 in ?? ()
#19 0x0000000000000201 in ?? ()
#20 0x000000000000002c in ?? ()
#21 0x00000000016d3900 in .Ld233 ()
#22 0x00000000016d3228 in VMT_$CONTROLS_$$_TWINCONTROL$indirect () #23 0x00007fff33fc8090 in ?? ()
#24 0x0000000003c41710 in ?? ()
#25 0x00007fff33fc80b0 in ?? ()
#26 0x00007fff33fc8110 in ?? ()
#27 0x000000000066aee0 in ?? ()
#28 0x00000000005a18a4 in WNDPROC (this=0x7fb994a87930, THEMESSAGE=...) at include/control.inc:2243
#29 0x0000000000594899 in WNDPROC (this=0x7fb994a87930, MESSAGE=...) at include/wincontrol.inc:5425
#30 0x0000000000754322 in DELIVERMESSAGE (TARGET=0x7fb994a87930, AMESSAGE=0) at lclmessageglue.pas:112
#31 0x000000000065d950 in DELIVERMESSAGE (TARGET=0x7fb994a87930, AMESSAGE=0) at gtk2/gtk2proc.inc:3780
#32 0x000000000066b8a9 in DELIVERMOUSEDOWNMESSAGE (WIDGET=0x3c287f0, EVENT=0x41f8c30, AWINCONTROL=0x7fb994a87930) at gtk2/gtk2callback.inc:2071 #33 0x000000000066af18 in GTKMOUSEBTNPRESS (WIDGET=0x3c41710, EVENT=0x41f8c30, DATA=0x7fb994a87930) at gtk2/gtk2callback.inc:1798 -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20190404/7557476e/attachment-0001.html>

Reply by email

Michael Van Canneyt
to Anthony Walter: I am fairly confident that I have all the required libraries installed and configured…
Anthony Walter wrote 18 lines
Sven, I am fairly confident that I have all the required libraries installed and configured correctly. Everything works fine, including reading data from my remote server and applying updates. The exception is that if at design time I change the Active property of any data related non visual component, then I get an AV. Also, I did follow the instructions or guide on that page prior to your suggestion and ti helped me connect to my remote server. Michael, To be sure I have the correct sources, I tried this twice. Once with my current Lazarus, and again with svn fixes_2_0 Lazarus. Both exhibit the same behavior and stack trace. Here is a screenshot of the error and the stack trace. I simply opened the my project, set the SQL query Active property to False, and I get this error. https://cache.getlazarus.org/images/sql-linux-av.jpg

Unfortunately, this stack trace is useless: it is the stack trace when the dialog is shown, not when the actual AV happens. You need to debug the IDE and post the stacktrace when the AV happened.

Michael.

Reply by email