8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-31 08:03:04 +01:00
Commit Graph

597 Commits

Author SHA1 Message Date
asfernandes
d03b6ede7f Misc 2008-12-18 01:24:58 +00:00
asfernandes
84dfa0e092 Fixed CORE-316 - Can't open database with MBCS/Extended characters in name.
Documentation soon.
2008-12-15 14:59:34 +00:00
robocop
511c7eb7d8 Promote thread_data* as function argument. 2008-12-14 10:19:27 +00:00
robocop
e4650d5027 Promote thread_data* as function argument. Only exception where both tdbb and dbb were left together as arguments is nbak.cpp's call to CCH_rollover_to_shadow to avoid any side effect in the changed code, but anyway, that function calls SDW_rollover_to_shadow that takes the dbb from the tdbb and not explicitly. 2008-12-14 09:28:25 +00:00
dimitr
40d041d628 Fixed the issue reported by Philippe. To be backported after more testing. 2008-12-12 16:04:57 +00:00
dimitr
25dc79dce2 Fixed CORE-2209: Very slow procesing of the monitoring requests under high load and blocking other activity during that time.
The new code is expected to work 100-200 times faster. To be field-tested.
Implemented CORE-2233: Allow non-SYSDBA users to monitor not only their current attachment but other their attachments as well.
Sorry for mixing two fixes inside a single commit, but they're somewhat related.
2008-12-11 11:58:50 +00:00
asfernandes
8fbf0e8e8c Remove trailing spaces (.cpp files) 2008-12-05 01:20:14 +00:00
hvlad
36e1866a1d Few fixes to correctly close brocken external connection.
Ability to stop execution of external query when :
- engine is shutted down
- database is shutted down
- local statement is cancelled
- local connection is cancelled
2008-11-27 23:06:48 +00:00
hvlad
62ca23fa58 Fixed bug CORE-2183 : Error in ExtDS when server shutdown started with opened Execute Statement 2008-11-17 12:30:28 +00:00
asfernandes
d8855e2e47 Misc 2008-11-14 14:15:37 +00:00
alexpeshkoff
e9162ee2f2 Fixed CORE-2179: Deadlock when trying to shutdown server with opened ExecuteStatement 2008-11-12 14:32:18 +00:00
dimitr
8e72ece026 Uncouple Mutex and RefMutex. This resolves the circular dependency: "AtomicCounter->Mutex->RefCounted->AtomicCounter" and thus enables all non-x86 POSIX builds. 2008-10-19 11:41:43 +00:00
roman-simakov
8edd7733d4 Fixed authentication bug with sysdba login written in lowercase letters. 2008-10-14 10:05:10 +00:00
hvlad
a3d266ba83 Fixed bug CORE-2018 : Only one client can access a readonly database 2008-10-14 09:10:36 +00:00
alexpeshkoff
e79f55708d 1. Cleanup - use Firebird::Semaphore instead of local events, removed code
related with local events from isc_sync.cpp.

2. Cleanup - removed unused parameter 'number of events' from ISC_event_wait()
and two unused parameters from ISC_event_init().

3. Added SYSV-semaphore based implementation of IPC to isc_sync.cpp.
This should fix CORE-2102: Firebird 2.5 does not build on MacOS (Darwin).

4. Fixed use of posic CS without (x)inetd (i.e. fb_inet_server -s).

5. Fixed (to be reviewed by Dmitry) recovery after some process death in lock manager.
2008-10-10 15:58:05 +00:00
hvlad
97bf925499 Use fb_utils::init_status instead of status[0] = 0 2008-09-10 11:41:36 +00:00
alexpeshkoff
5be80cc7f5 Restored missing line - thanks to Claudio 2008-09-01 08:56:17 +00:00
asfernandes
96194d08ba Misc 2008-08-31 01:10:41 +00:00
asfernandes
8497cd4307 Misc 2008-08-28 15:39:51 +00:00
alexpeshkoff
13a15d4bfe 1. Final fix for CORE-1964 - finished vararg cleanup in jrd.
2. Generic cleanup of error reporting functions all around engine.
2008-08-27 12:20:47 +00:00
asfernandes
8f9b451ce9 Rework of ib_util changes. Dynamically load it in the engine and inform callback functions to alloc and free memory. Allocate memory from the default pool. 2008-07-12 21:23:42 +00:00
robocop
a302401357 Misc. 2008-07-09 12:34:43 +00:00
dimitr
609f466ad3 1) Fixed the layering, as dbb_lock shouldn't belong to PIO.
2) Passed tdbb to some engine routines that were dealing with TLS.
3) Got rid of fil_length and some minor cleanup.
2008-07-09 08:40:31 +00:00
robocop
534abf1560 const 2008-07-08 06:44:53 +00:00
alexpeshkoff
81579840ab Renamed function 2008-07-07 13:33:28 +00:00
alexpeshkoff
7fe33f3e5d Fixed CORE-1972: Non-SYSDBA user can change FW mode of database 2008-07-07 10:42:17 +00:00
asfernandes
45786da3bc Misc 2008-07-06 16:42:52 +00:00
robocop
80ba24a605 Fixing the Win32 build after Alex' changes. 2008-07-06 11:03:09 +00:00
alexpeshkoff
5ac5869661 CORE-1964 - stop vararg mess when reporting errors. Use special class for it. More (ERR_post cleanup) to come. 2008-07-03 12:02:54 +00:00
alexpeshkoff
a2e416210b Fixed CORE-1964: Use of 0 instead of isc_arg_end to terminate list of ERR_post's (and cousines) arguments is invalid.
Also cleaned up use of gds__log() in a few places.
2008-06-26 09:47:59 +00:00
hvlad
81c1e2e604 Correct error in my previous commit. 2008-06-24 12:02:29 +00:00
hvlad
ac03047011 1. Make work with databases_mutex more consistent (lock\unlock it at the same scope of code).
2. Restore accidentally broken pause when attempt to brute-force login\pwd is detected
2008-06-24 11:56:17 +00:00
asfernandes
af1d955da6 Improvement CORE-1937 - Detect (instead of crash) FREE_IT UDFs that return pointer not allocated by ib_util_malloc 2008-06-14 22:16:40 +00:00
dimitr
9a9d48c45d Restored the missing (wrongly cleaned up) parts of the thread priority logic (still useful for the current SS). 2008-06-09 08:10:11 +00:00
dimitr
ec1d5a91b4 1) Encapsulated the lock manager and integrated it into the engine.
2) Replaced "early" (before LM) checkouts with "late" (inside LM) ones.
3) Removed the mutex protection that's no longer necessary.
Note: the new LM contains some future code (currently commented out) which will be enabled and tested after the Alpha release.
2008-06-07 09:08:16 +00:00
dimitr
bff84e9e7a Cleanup. 2008-06-06 15:55:36 +00:00
alexpeshkoff
b85be10e63 Fixed static variables in verify_database_name() - thanks to Claudio 2008-05-21 08:40:58 +00:00
alexpeshkoff
17061d4280 Make fb_cancel_operation() behave better when enable/disable command is used 2008-05-12 13:36:22 +00:00
hvlad
422338e5e3 Lock att_mutex in Attachment's constructor 2008-05-08 07:45:19 +00:00
dimitr
2c7acdef79 Cleanup of the disabled/unused code. 2008-05-07 10:39:24 +00:00
dimitr
7edcee435b 1) Turn on FW on all platforms by default.
2) Cleanup/misc.
2008-05-07 05:18:09 +00:00
dimitr
0a9e8c8382 Implemented CORE-1751. The changes include:
1) Make memory counters aggregated.
2) Add attachment pool and allocate appropriate resources out of this pool.
3) Always release attachments explicitly (via destructor).
4) Always delete user requests prior to attachment deletion.
5) Introduce memory usage counters per every monitoring object.
6) Misc refactoring.
Some pieces are still incomplete (although everything basically works), but I'd like to get feedback and testing sooner rather than later.
2008-05-06 08:46:39 +00:00
asfernandes
b30236303d Misc 2008-05-05 02:22:53 +00:00
hvlad
a8d9303dc7 Restore att_mutex blocking logic as prior commit broked EXECUTE STATEMENT. Add extra mt protection in cancel_attachments. 2008-05-04 21:24:33 +00:00
alexpeshkoff
7ff8e4d2be Fixed CORE-1879: Server uses wrong authentication method 2008-05-04 13:38:02 +00:00
hvlad
9280a572a0 Avoid long blocking of att_mutex and make sure it is always released when attachment deleted.
Move active requests cancellation at engine shutdown from Y-valve into engine and let them stop execution before deletion of attachments.
Make sweep run in separate thread despite of engine architecture.
2008-05-04 12:49:29 +00:00
asfernandes
59673b03e8 Misc 2008-05-03 01:58:36 +00:00
robocop
ec66e1713a Fix indentation. 2008-05-01 11:01:10 +00:00
alexpeshkoff
0ba2ab7ea7 Make fb_cancel_operation() public API call. Related cleanup. 2008-04-29 09:55:41 +00:00
asfernandes
53a2090f65 Misc 2008-04-27 02:39:51 +00:00
robocop
83d3ddd6cb Replace custom code by helper class ThreadStatusGuard. 2008-04-26 10:29:52 +00:00
alexpeshkoff
6e04201fa5 Fixed AV: exception may be thrown when there is no attachment at all 2008-04-24 15:11:45 +00:00
asfernandes
e18ac3cb53 Misc 2008-04-24 01:53:40 +00:00
asfernandes
a599f8a49a Fixed problems of attachment lock in Windows - thanks to Vlad 2008-04-22 15:32:33 +00:00
alexpeshkoff
9ff2935d79 Fixed CORE-1854: Value of CURRENT_USER may be not in upper case when using unix OS auth 2008-04-21 16:18:41 +00:00
asfernandes
c416ea1621 Lock the attachment handle during API calls 2008-04-20 22:54:36 +00:00
asfernandes
d75951e8e5 Misc 2008-04-18 01:37:44 +00:00
dimitr
c255169fe9 1) Simplified the internal provider API a little.
2) Passed the original filename (possibly an alias) via DPB. This way it can be transmitted through the remote subsystem.

Hopefully, this should fix CORE-1105, CORE-1390 and CORE-1566 at once.
Although a better hope would be that it won't break anything else :-)
2008-04-17 14:05:44 +00:00
asfernandes
77e97a47c0 Feature requests CORE-1737 and CORE-1803:
1) ALTER CHARACTER SET <charset> SET DEFAULT COLLATION <collation>
2) CREATE DATABASE ... [ DEFAULT CHARACTER SET <charset> [ COLLATION <collation> ] ]
2008-04-15 02:18:38 +00:00
hvlad
d5aa346176 Make provider's registration not dependent from existance of EDS::Manager instance. Noted by Adriano. 2008-04-12 21:20:26 +00:00
robocop
bbc2c20725 Misc. 2008-04-10 09:43:31 +00:00
hvlad
fe3f8c184b New EXECUTE STATEMENT with support of external data source implementation 2008-04-09 20:18:47 +00:00
robocop
82ab872e2e Fix comment. 2008-04-09 12:57:22 +00:00
alexpeshkoff
b237f4ebd8 Cleanup - avoid use of SUPERCLIENT macro in files, used by utilities
(and in some other places too).
2008-04-08 14:18:24 +00:00
alexpeshkoff
6901cc5938 Almost misc 2008-04-07 15:26:52 +00:00
asfernandes
a73aa97269 Load ib_util.dll from the install directory, to fbembed.dll loaded with altered search path be able to find it 2008-04-04 15:59:15 +00:00
asfernandes
2723814ced Fix the problem with ib_util.dll caused by CORE-1814 2008-04-04 15:37:48 +00:00
alexpeshkoff
97b10fd3ca Fixed forgotten terminator - thanks to Dmitry and Adriano 2008-04-04 14:47:05 +00:00
alexpeshkoff
abcbabf448 Added message for shutdown timeout failure 2008-04-04 14:20:20 +00:00
alexpeshkoff
aafed20fe1 Fixed problems with shutting down actively running engine - related with CORE-1805. 2008-04-02 14:26:17 +00:00
asfernandes
d11b683899 Fix the pool usage 2008-03-31 01:51:18 +00:00
robocop
3de79a20c9 Fixing the damn interface. 2008-03-30 09:42:24 +00:00
hvlad
5e6a939197 Set transaction handle to NULL after successful commit or rollback 2008-03-28 09:18:39 +00:00
alexpeshkoff
cbe0217664 fixed gcc warning 2008-03-27 09:14:24 +00:00
dimitr
b87b5032ef Changes in the TimeStamp class by Dmitry Kovalenko. 2008-03-26 10:21:04 +00:00
robocop
8270e50066 make them explicit. 2008-03-22 09:02:27 +00:00
dimitr
1f22e3e1c1 1) Added proper handle validation for dbb.
2) Changed dbb_sync lifestyle handling.
3) Sync'ed access to the att_long_locks.
4) Put in a temporary workaround for nbackup deadlocks.
2008-03-20 16:42:29 +00:00
dimitr
f5659c0b70 1) Major cleanup of the old-style blk and allocator-based blk_type.
2) Added synchronization for the JRD locks.
2008-03-19 16:19:56 +00:00
alexpeshkoff
ed25245303 Applied shutdown changes, discussed in fb-devel a week ago. 2008-03-17 16:49:47 +00:00
asfernandes
493a6eab3c Misc 2008-03-17 02:00:16 +00:00
asfernandes
8bb723bec3 Validate (and store in tdbb) non-NULL transaction handles 2008-03-16 19:30:00 +00:00
asfernandes
c7ec88bee4 1) Created classes PreparedStatement and ResultSet
2) Changed EXECUTE STATEMENT to use these classes
3) Fixed CORE-1784 - Error with EXECUTE PROCEDURE inside EXECUTE STATEMENT
2008-03-13 16:37:20 +00:00
dimitr
ebad313cfd 1) Fixed CORE-1788.
2) Protected from other similar deadlocks.
3) Refactoring.
2008-03-13 14:20:32 +00:00
dimitr
afb970dba1 1) Cleanup.
2) Catch exceptions in AST routines.
2008-03-12 16:53:57 +00:00
robocop
c407e8cd0e Make member function inline. 2008-03-12 07:16:26 +00:00
robocop
dadefcb479 Binary things are UCHAR. Let's try to fix them from the innermost layer to the outermost layer until we can fix the public interfaces. 2008-03-10 09:31:40 +00:00
asfernandes
74d8711856 Misc 2008-03-08 21:20:26 +00:00
robocop
b1b7634b3d Since SCL_release changed meaning, it's necessary to adjust the name (SCL_release_all) and the comments. 2008-03-08 11:37:15 +00:00
asfernandes
0b6ecafe1b 1) Remove REPLAY_OSRI_API_CALLS_SUBSYSTEM code
2) Remove internal y-valve function INTERNAL_COMPILE_REQUEST
3) Go direct to engine internals from DSQL, without need to exit/enter the attachment lock and check exceptions in status vector
2008-03-07 15:23:21 +00:00
hvlad
7d54298dea Fixed CORE-1775 : Improve performance of security checking 2008-03-06 13:13:31 +00:00
hvlad
23679a8b04 Fix few race conditions during metadata load and make index lock block accounting more MT safe. 2008-03-05 14:23:19 +00:00
dimitr
d597154a4b 1) Added timeout value to the shutdown API call.
2) Fixed the slow fbembed detach noticed by Claudio and Vlad.
3) Cleanup.
2008-03-04 13:27:02 +00:00
robocop
8888ecb544 Let's better use UCHAR for binary streams. 2008-03-04 06:03:34 +00:00
asfernandes
e88fd596d9 Let DSQL cache lock logic in SS too - per Dmitry request 2008-03-03 15:40:56 +00:00
asfernandes
88b6f39f82 1) Restore logic of not handled exceptions
2) Initialize some status vectors
2008-03-03 00:47:04 +00:00
asfernandes
7a2dedaa39 Go direct to engine internals from DSQL, without need to exit/enter the attachment lock - more to follow 2008-03-02 21:16:16 +00:00
asfernandes
35688cd5d9 Cleanup: remove y-valve functions DSQL_CACHE and INTL_FUNCTION 2008-03-01 19:14:46 +00:00
dimitr
0096b53d9b Fixed the issue reported by Dmitry Kovalenko in fb-devel. We don't need to validate the transaction handle in JRD, as DSQL does some tricks about it. 2008-03-01 08:42:31 +00:00
alexpeshkoff
48e9858b57 fixed CORE-1756: AV in isc_start_transaction (isc_start_multiple) 2008-02-29 16:44:17 +00:00
dimitr
5ca270c096 1) Cleanup SERVER_SHUTDOWN.
2) Make the engine shutdown asynchronous.
2008-02-29 12:47:20 +00:00
alexpeshkoff
00c63c1f8d 1. Make signals handling in yValve MT safe.
2. Introduce new private API calls, fb__shutdown() and fb__shutdown_callback().
3. Introduce fb_smp_server - binary to run superclassic on posix.
4. Various cleanups.
2008-02-28 18:42:30 +00:00
dimitr
99caa91b85 DSQL integration into the engine. 2008-02-28 13:48:16 +00:00
dimitr
6343ea1d84 1) Fixed a deadlock related to SecurityDatabase.
2) Cleaned up the code duplicated in CMP_shutdown_database(). This was a mistake in one of my prior commits.
2008-02-27 12:25:04 +00:00
dimitr
c7bbcda729 Fixed the mutex recursion in jrd8_prepare_transaction. Thanks to Dmitry Kovalenko. 2008-02-24 09:55:10 +00:00
robocop
95e59f72b5 Undo the check for 255 bytes in JRD_num_attachments (let the callers handle long paths).
Fix some memory leaks (at least one of them signaled by myself years ago) when calling JRD_num_attachments.
Introduce an enumeration for the "flag" parameter in the same function.
2008-02-21 04:24:42 +00:00
dimitr
0542cccc67 Cleanup the code that was never enabled. 2008-02-20 16:33:59 +00:00
dimitr
3b843d8aea Make the memory stats SuperClassic friendly. It doesn't make the Classic logic much worse. 2008-02-20 15:29:07 +00:00
robocop
5bff502eac Better report truncated paths than to crash due to malformed parameter block. 2008-02-20 10:20:40 +00:00
dimitr
81df8a829f Added missing synchronization. 2008-02-19 16:50:04 +00:00
dimitr
7ae3eb5977 1) Make enumeration and shutdown routines SuperClassic friendly.
2) Cleanup and minor refactoring of the Classic shutdown routines.
2008-02-19 16:23:53 +00:00
asfernandes
c979d91901 Misc 2008-02-19 02:34:55 +00:00
robocop
7a0a29e234 Move some clutter out of jrd.h to Database.h and Database.cpp. 2008-02-14 12:24:27 +00:00
robocop
360cc4c31b Style. 2008-02-14 07:31:25 +00:00
dimitr
ff9e777bc0 Cleanup, style and synchronization. Solved a few deadlocks and races during attach. 2008-02-14 07:12:13 +00:00
alexpeshkoff
dbf65528b8 Fixed CORE-1726: isc_service_start failed, use InitHolder for SecurityDatabase in services too. 2008-02-13 13:10:23 +00:00
asfernandes
627202bd84 Fix operator precedence 2008-02-11 23:32:15 +00:00
dimitr
78b4b30764 Move the dbb<->att check under the mutex protection. 2008-02-11 17:39:04 +00:00
asfernandes
4ffcaa7c5b Misc 2008-02-10 17:26:35 +00:00
alexpeshkoff
c3e1830e12 1. Cleanup:
- moved Attachment constructor (big enough) into .cpp file
 - avoid use of dbb in Database::get() and getUserInfo()
2. Complete fix for CORE-1726 - SecurityDatabase::init() is now not Database, but Attachment counted.
2008-02-10 16:38:30 +00:00
alexpeshkoff
18f72a7ed2 Fixed filehandles and temp diskspace leak - delete dbb_sys_trans makes it close TempSpace 2008-02-08 16:54:10 +00:00
asfernandes
691fb487d8 Misc 2008-02-06 00:43:54 +00:00
alexpeshkoff
ee6c433597 Mutexes cleanup:
1. Make all firebird mutexes recursive.
2. Enable exceptions to be thrown by mutexes and process them in code where needed.
3. Catch and ignore exceptions in various MutexGuard dtors.
2008-02-05 08:21:18 +00:00
robocop
4c3381ef6b Style, constness and macro cleanup. 2008-02-03 10:41:44 +00:00
asfernandes
b39ac40c9d Misc 2008-02-03 02:32:39 +00:00
alexpeshkoff
8901a0e003 Services cleanup - make class Service traditional C++ class 2008-02-02 18:33:37 +00:00
robocop
e9e1ead67a Mostly style, constness, native memcpy and explicit constructors. 2008-02-02 17:04:06 +00:00
dimitr
9c9413d02e Fixed issue spotted by Claudio privately. 2008-02-02 14:36:06 +00:00
dimitr
16814b51a6 Let's be consistent with operation order during dbb destruction. 2008-01-29 17:32:42 +00:00
alexpeshkoff
3589cebc95 Fixed some posix problems 2008-01-29 10:36:49 +00:00
dimitr
a38b327886 Cleanup. Get rid of the JrdMemoryPool. 2008-01-29 10:11:52 +00:00
asfernandes
de8771570f Misc 2008-01-29 01:36:41 +00:00
dimitr
c0f1809bde Let's explicitly release all locks we own. 2008-01-28 17:27:03 +00:00
dimitr
ed3817f6b6 Sigh, we have to release the dbb when doing authentication. 2008-01-26 17:33:57 +00:00
dimitr
d54edd1a13 Major synchronization changes. Description of the commit will be posted to fb-devel. 2008-01-26 13:51:33 +00:00
asfernandes
aea2bcb354 Misc 2008-01-23 19:03:16 +00:00
alexpeshkoff
39896cb955 Fixed CORE-1671: atexit() calls in client libraries cause segfaults
and CORE-1079: Every attach of fbclient/fbembed library leaks 64KB of memory

To do it:
- created new template GlobalPtr, controlling access to destructors of global objects.
- applied it to global objects.

Also some related cleanup.
2008-01-23 15:52:40 +00:00
dimitr
c577fde263 The merge is being fixed. 2008-01-16 12:29:45 +00:00
dimitr
d1e8f67a5d The merge continued. 2008-01-16 09:29:37 +00:00
dimitr
516f75c010 Protect the mutex from being released twice. 2007-12-19 14:12:31 +00:00
dimitr
cf12557e36 Code simplification. We don't need to track the cancellation for the non-request activities. 2007-12-11 09:19:06 +00:00
dimitr
d276641cc8 Fixed CORE-1610 and its subtask CORE-1615. 2007-12-10 07:18:54 +00:00
alexpeshkoff
eea9070f48 Optimized RuntimeStaticstics (and related part of ThreadDb) for performance - some tests run 25faster 2007-12-03 15:46:39 +00:00
alexpeshkoff
3e0d8ebc5b Fixed CORE-1603: Possible buffer overflow with long user name 2007-11-19 16:18:59 +00:00
hvlad
2b47bbe55b Revert files back after wrong commit 2007-11-19 00:21:18 +00:00
hvlad
86f1141328 Execute statement with support of external data source 2007-11-18 22:59:20 +00:00
alexpeshkoff
a80dd39b11 Fixed CORE-1593: Full domain user name can be longer than 31 char(for trusted authentication) 2007-11-15 12:48:24 +00:00
alexpeshkoff
c4f6801e34 avoid cast 2007-11-01 17:19:54 +00:00
alexpeshkoff
8c542c5b26 Fixed CORE-1551: AV when all statements are cancelled 2007-10-30 14:50:05 +00:00
alexpeshkoff
edc03201ca Fixed CORE-1537: NBackup creates difference file in bad place 2007-10-26 13:21:16 +00:00
dimitr
025cf5c752 Fixed CORE-1540. 2007-10-26 10:53:47 +00:00