Skip to content

Commit 11887f5

Browse files
committed
mdbx: more fix copy_asis() regression for case destination is a pipe.
2026-08-07 mdbx-tests: fix `copy` testcase for case when destination is already exists. 2026-08-07 mdbx-ci: increase the timeout on SourceCraft to 30 minutes. 2026-08-07 mdbx-make: add more duration limits to avoid CI timeouts. 2026-08-07 mdbx: more fix `copy_asis()` regression for case destination is a pipe. 2026-08-07 mdbx: add `MDBX_EEXIST` error code.
1 parent a3e890a commit 11887f5

14 files changed

Lines changed: 21 additions & 20 deletions

VERSION.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "git_describe": "v0.14.2-543-ga4d2e4ab", "git_timestamp": "2026-08-07T16:04:08+03:00", "git_tree": "5fc4a75ee7d37cfc66492dcf2808c8c95cda0081", "git_commit": "a4d2e4ab9f27971742bd4c8e2963f533d5bc10d7", "semver": "0.14.2.543" }
1+
{ "git_describe": "v0.14.2-548-gee87b0d4", "git_timestamp": "2026-08-08T00:27:39+03:00", "git_tree": "52f1ff3ffcf5369904ac36d39a5696974089c546", "git_commit": "ee87b0d44604c2f79e87e497ec34cd528048dd18", "semver": "0.14.2.548" }

config.h.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00),
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00),
22
* it is the template for libmdbx's config.h
33
******************************************************************************/
44

mdbx-internals.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight
@@ -24,7 +24,7 @@
2424

2525
#define xMDBX_ALLOY 1 /* alloyed build */
2626

27-
#define MDBX_BUILD_SOURCERY 0f1f0893ddabe241f2f4d3a68cbba625fa11d87919a66f8177d4bb05f686ba93_v0_14_2_543_ga4d2e4ab
27+
#define MDBX_BUILD_SOURCERY d5b7db14f7dd4cf9258d39c07b7494d8497f089ab807375fa295548a28140ef6_v0_14_2_548_gee87b0d4
2828

2929
#define LIBMDBX_INTERNALS
3030
#define MDBX_DEPRECATED

mdbx.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight
@@ -5539,12 +5539,10 @@ __cold static int copy_asis(MDBX_env *env, MDBX_txn *txn, mdbx_filehandle_t fd,
55395539
}
55405540

55415541
jitter4testing(false);
5542-
size_t offset = meta_bytes;
55435542
if (dest_is_pipe) {
55445543
rc = osal_write(fd, buffer, meta_bytes);
55455544
if (unlikely(rc != MDBX_SUCCESS))
55465545
return rc;
5547-
offset = 0;
55485546
}
55495547

55505548
#if MDBX_USE_COPYFILERANGE
@@ -5565,6 +5563,7 @@ __cold static int copy_asis(MDBX_env *env, MDBX_txn *txn, mdbx_filehandle_t fd,
55655563
/* Copy the data */
55665564
const size_t whole_size = pgno_ceil2os_bytes(env, txn->geo.end_pgno);
55675565
const size_t used_size = pgno2bytes(env, txn->geo.first_unallocated);
5566+
size_t offset = meta_bytes;
55685567
while (rc == MDBX_SUCCESS && offset < used_size) {
55695568
if (flags & MDBX_CP_THROTTLE_MVCC) {
55705569
rc = mdbx_txn_unpark(txn, false);
@@ -42755,10 +42754,10 @@ __dll_export
4275542754
0,
4275642755
14,
4275742756
2,
42758-
543,
42757+
548,
4275942758
"", /* pre-release suffix of SemVer
42760-
0.14.2.543 */
42761-
{"2026-08-07T16:04:08+03:00", "5fc4a75ee7d37cfc66492dcf2808c8c95cda0081", "a4d2e4ab9f27971742bd4c8e2963f533d5bc10d7", "v0.14.2-543-ga4d2e4ab"},
42759+
0.14.2.548 */
42760+
{"2026-08-08T00:27:39+03:00", "52f1ff3ffcf5369904ac36d39a5696974089c546", "ee87b0d44604c2f79e87e497ec34cd528048dd18", "v0.14.2-548-gee87b0d4"},
4276242761
sourcery};
4276342762

4276442763
__dll_export

mdbx.c++

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight

mdbx.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/** This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
33
\file mdbx.h
44
\brief The libmdbx C API header file.
@@ -2020,6 +2020,7 @@ typedef enum MDBX_error {
20202020
MDBX_EIO = ERROR_WRITE_FAULT,
20212021
MDBX_EPERM = ERROR_INVALID_FUNCTION,
20222022
MDBX_EINTR = ERROR_CANCELLED,
2023+
MDBX_EEXIST = ERROR_FILE_EXISTS,
20232024
MDBX_ENOFILE = ERROR_FILE_NOT_FOUND,
20242025
MDBX_EREMOTE = ERROR_REMOTE_STORAGE_MEDIA_ERROR,
20252026
MDBX_EDEADLK = ERROR_POSSIBLE_DEADLOCK
@@ -2041,6 +2042,7 @@ typedef enum MDBX_error {
20412042
MDBX_EIO = EIO,
20422043
MDBX_EPERM = EPERM,
20432044
MDBX_EINTR = EINTR,
2045+
MDBX_EEXIST = EEXIST,
20442046
MDBX_ENOFILE = ENOENT,
20452047
#if defined(EREMOTEIO) || defined(DOXYGEN)
20462048
/** Cannot use the database on a network file system or when exporting it via NFS. */

mdbx.h++

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/// This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
/// \file mdbx.h++
33
/// \brief The libmdbx C++ API header file.
44
///

mdbx_chk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight

mdbx_copy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight

mdbx_defrag.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* This file is part of the libmdbx amalgamated source code (v0.14.2-543-ga4d2e4ab at 2026-08-07T16:04:08+03:00).
1+
/* This file is part of the libmdbx amalgamated source code (v0.14.2-548-gee87b0d4 at 2026-08-08T00:27:39+03:00).
22
*
33
* libmdbx (aka MDBX) is an extremely fast, compact, powerful, embeddedable, transactional key-value storage engine with
44
* open-source code. MDBX has a specific set of properties and capabilities, focused on creating unique lightweight

0 commit comments

Comments
 (0)