Skip to content
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

Firebird 2.5.3 hangs on simultaneous connection to the Services API and database [CORE4908] #5200

Closed
firebird-issue-importer opened this issue Aug 12, 2015 · 9 comments

Comments

@firebird-issue-importer

Submitted by: @SENikitin

Problem occurs after 2.5.3, exists in 2.5.4.

See dump
https://yadi.sk/d/-2RFcesiiFCW8

Commits: 877b056 058c3a9 FirebirdSQL/fbt-repository@e70b65b FirebirdSQL/fbt-repository@0386a2e

====== Test Details ======

Can anyone give scenario about sequence of actions in fbtest ? What should be specified first and what second: attach to services API or to database ? What kind of services should be tested ?

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 18, 2015

Modified by: @dyemanov

assignee: Alexander Peshkov [ alexpeshkoff ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 19, 2015

Modified by: @AlexPeshkoff

Version: 2.5.4 [ 10585 ]

Version: 2.5.3 [ 10461 ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 19, 2015

Modified by: @AlexPeshkoff

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.5.5 [ 10670 ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 21, 2015

Commented by: @SENikitin

Hi,

Problem still exists - we have tested it with yesterday snapshot, Firebird SuperClassic hanged again, dump and pdb are here:
http://ge.tt/2F4o2aM2/v/0?c

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 21, 2015

Commented by: @AlexPeshkoff

I can't use dmp & pdb - I have no windows OS. Please provide stack traces text dump.

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 21, 2015

Commented by: @dyemanov

thread 1:

Jrd::Service::Service(const char * service_name=0x0000000000200000, unsigned short spb_length=32, const unsigned char * spb_data=0x5f65636976726573)
*** hangs at dbInitGuard.enter(), file svc.cpp, line 812
jrd8_service_attach(__int64 * user_status=0x000000000198f6f0, const char * service_name=0x000000000198f6f0, Jrd::Service * * svc_handle=0x00000000051b8a08, unsigned short spb_length=0, const char * spb=0x000000000198f8a0)

thread 2:

Jrd::SecurityDatabase::init()
*** hangs at MutexLockGuard guard(mutex), file pwd.cpp, line 248
getUserInfo(Jrd::UserId & user={...}, const DatabaseOptions & options={...})
jrd8_attach_database(__int64 * user_status=0x0000000140000000, const char * filename=0x0000000004d0f560, Jrd::Attachment * * handle=0x00000000051be1d0, short dpb_length=-7728, const unsigned char * dpb=0x0000000004d0f610)

thread 3:

jrd8_attach_database(__int64 * user_status=0x0000000140000000, const char * filename=0x000000000490e270, Jrd::Attachment * * handle=0x000000000000000c, short dpb_length=-6640, const unsigned char * dpb=0x000000000490e320)
*** hangs at guardDbInit.enter(), file jrd.cpp, line 921
isc_attach_database(__int64 * user_status=0x000000000490e530, short file_length=31, const char * file_name=0x000000000490ed01, unsigned int * public_handle=0x000000000490ebb0, short dpb_length=12, const char * dpb=0x000000000490e570)
Jrd::SecurityDatabase::prepare()
Jrd::SecurityDatabase::lookupUser(const char * user_name=0x00000000778eb950, int * uid=0x000000000490e990, int * gid=0x0000000000000006, char * pwd=0x000000000490ebb0)
Jrd::SecurityDatabase::verifyUser(const char * user_name=0x0000000000829ab8, const char * password=0x0000000000000000, const char * password_enc=0x000000000082b498, int * uid=0x0000000140375949, int * gid=0x000000000490ed78, int * node_id=0x000000000490ecf0, const Firebird::StringBaseFirebird::StringComparator\ & remoteId={...})
Jrd::Service::Service(const char * service_name=0x0000000100200000, unsigned short spb_length=32, const unsigned char * spb_data=0x5f65636976726573)
jrd8_service_attach(__int64 * user_status=0x000000000490f6f0, const char * service_name=0x000000000490f6f0, Jrd::Service * * svc_handle=0x0000000000829288, unsigned short spb_length=0, const char * spb=0x000000000490f8a0)

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 21, 2015

Commented by: @dyemanov

SecurityDatabase::lookupUser() holds pwd::mutex and acquires dbInitMutex inside prepare()->jrd8_attach_database
Service::Service() holds dbInitGuard and acquires pwd::mutex inside SecurityDatabase::init() (via siHolder).

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Aug 24, 2015

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: No test => Deferred

Test Details: Can anyone give scenario about sequence of actions in fbtest ? What should be specified first and what second: attach to services API or to database ? What kind of services should be tested ?

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Sep 23, 2015

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants