Issue Details (XML | Word | Printable)

Key: CORE-210
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Dmitry Yemanov
Reporter: ded
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Firebird Core

CS server crash altering SP in 2 connect

Created: 22/Nov/02 12:00 AM   Updated: 08/Nov/09 02:59 PM
Component/s: Engine
Affects Version/s: None
Fix Version/s: 2.5 Beta 1

Time Tracking:
Not Specified

SF_ID: 642411
Target: 2.5.0


 Description  « Hide
SFID: 642411#
Submitted By: ded

  If the same procedure is altered on Classic FB1 from
2 connections, undocumented exception "Procedure in
use" is raised or gds_inet crashes. It is depenedent on
transactions parameters. How to reproduce:

  Start 2 instances of interactive tool (isql or any
GUI tool) and:

1-st instance

 create procedure test
 as
 begin
  exit;
 end

 Commit

2-nd instance

 alter procedure test
 as
 declare variable a int;
 begin
  exit;
 end

 Commit

1-st instance again

 alter procedure test
 as
 begin
  exit;
 end

 Commit

  At this point (namely Commit):

  if transaction parameters are concurrency wait:

Statement failed, SQLCODE = -902
Error reading data from the connection.

  in server log:
Fatal lock manager error: invalid lock id (0) errno: 2

  after it if this connection is restarted alter will
be successfull, but if we try alter procedure back in
2-nd (living for this time) instance - it's connection
will be broken too with the same line in log but errno:
4.

   Any other parameters of transactions results in
"Procedure in use" message instead of the crash of
gds_inet.

Alexander V.Nevsky.

 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Pavel Cisar added a comment - 08/Nov/09 02:59 PM
Fix verified, no test added.