cancel
Showing results for 
Search instead for 
Did you mean: 

How to crash a SA11 engine with a simple SQL statement

reimer_pods
Participant
3,813

While testing High Availability I want to simulate a failing primary server. Killing the process via task manager would work, but I just wanted a more elegant solution using plain SQL.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

To terminate a server using a SQL statement, you might use xp_cmdshell() together with a command that kills a process (e.g. taskkill on Windows).

The issue that caused the crash with the above CREATE VIEW statement will be fixed in build 11.0.1.2367.

Answers (2)

Answers (2)

reimer_pods
Participant

Just submit

create view ConnectionInfo as
   select Number as ConnNr, Name, Userid, DBNumber, LastReqTime, ReqType, CommLink, 
          NodeAddr,LastIdle, BlockedOn, LockName, UncmtOps,
          (select value from sa_conn_properties(ConnNr) where PropName= 'PrepStmt' ) PrepStmt,
          (select convert(integer,isnull(value,0)) from sa_conn_properties(ConnNr) 
             where PropName= 'CursorOpen' ) CursorOpen
   from sa_conn_info()

This will crash the server instantly (until the bug will be fixed). I'm using 11.0.1.2352.

reimer_pods
Participant
0 Kudos

If you might come to the conclusion that I didn't ask a "real" question, but wanted to report a bug in a more subtle way, you're probably right :).

VolkerBarth
Contributor
0 Kudos

I'm intested how you are going to keep the answer valid (i.e. for newer builds) if this particular bug will get fixed:)

Former Member
0 Kudos

+1 Crashed here too.

reimer_pods
Participant
0 Kudos

@Volker: this is the third time I encountered a statement that could regularily crash the engine. If this one is fixed, I'm hoping to come up with a new one (well, in fact rather fearing than hoping ...)

Former Member
0 Kudos

OS: Ubuntu10.4 AMD64 / Debian5 AMD64; SQL Anywhere: SA11.0.1.2645 64bit

for shut down server, run query in java isql:

 select * from test_table where id=1;
 select * from test_table where id=2;
 select * from test_table where id=1
 select * from test_table where id=2

ps: case id 11695638

VolkerBarth
Contributor
0 Kudos

Is the semicolon deliberately omitted in the 3rd row?

That might turn this into a Transact-SQL statement batch (i.e. it will return 2 result sets) - though a crash then would surely look like a bug...