Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
Sergei Golubchik
C/C 3.1.27
Sergei Golubchik
update HeidiSQL to 12.10

also, switch to https
Vladislav Vaintroub
MDEV-14091 Support password protected SSL key in server.

Add ssl_passphrase_command server parameter, inspired by Postgres
parameter with the same name.

Based on a patch by Hartmut Holzgraefe
Sergei Golubchik
Merge branch '10.6' into 10.11
Marko Mäkelä
MDEV-35966 galera.galera_as_master crashes in debug builds

innobase_commit(): When Galera is used with SET SQL_LOG_BIN=OFF,
some debug assertions that had been added in
commit ddd7d5d8e34c3edd7ebf4790eec2c4e4d9141e94 (MDEV-24035)
would fail. Let us relax those assertions for Galera transactions,
to allow an implicit commit after an internally executed XA PREPARE.

Note that trx_undo_report_row_operation() only allows undo log records
to be added to ACTIVE transactions (not after XA PREPARE). Hence, this
relaxation should be safe with respect to writes.
Sergei Golubchik
C/C 3.3.14
Sergei Petrunia
MDEV-30877: Output cardinality for derived table ignores GROUP BY

(Variant 3) (commit in 11.4)
When a derived table has a GROUP BY clause:

  SELECT ...
    FROM  (SELECT ... GROUP BY col1, col2) AS tbl

The optimizer would use inner join's output cardinality as an estimate
of derived table size, ignoring the fact that GROUP BY operation would
produce much fewer groups.

Add code to produce tighter bounds:
- The GROUP BY list is split into per-table lists. If GROUP BY list has
  expressions that refer to multiple tables, we fall back to join output
  cardinality.
- For each table, the first cardinality estimate is join_tab->read_records.
- Then, we try to get a tighter bound by using index statistics.
- If indexes do not cover all GROUP BY columns, we try to use per-column
  EITS statistics.
  • kvm-tarbake-jaunty-x86: make dist failed -  stdiokernel
Sergei Golubchik
MDEV-35907 debian-start script fails when using non-standard socket path

consistently use --defaults-extra-file for all command-line tools
Yuchen Pei
MDEV-22168 Supporting multiple engines with table partitioning

Patch by holyfoot bb-11.2-mdev-22168-hf
b8d686b24e9e2fb61cf24a4842e18159187b1bbc applied with trivial
mtr --record changes
Sergei Golubchik
MDEV-33285 make the test deterministic

need to clear old signals
before waiting for new signals with the same name
Sergei Golubchik
ColumnStore 6.4.10-1
Monty
Fixed costs in JOIN_TAB::estimate_scan_time() and HEAP

Estimate_scan_time() calculates the cost of scanning a derivied table.
The old code did not take into account that the temporary table heap table
may be converted to Aria.

Things fixed:
- Added checking if the temporary tables data will fit in the heap.
  If not, then calculate the cost based on the designated internal
  temporary table engine (Aria).
- Removed MY_MAX(records, 1000) and instead trust the optimizer's
  estimate of records. This reduces the cost of temporary tables a bit
  for small tables, which caused a few changes in mtr results.
- Fixed cost calculation for HEAP.
  - HEAP costs->row_next_find_cost was not set. This does not affect old
    costs calculation as this cost slot was not used anywhere.
    Now HEAP cost->row_next_find_cost is set, which allowed me to remove
    some duplicated computation in ha_heap::scan_time()
Sergei Golubchik
MDEV-35911 Assertion `marked_for_write_or_computed()' failed in bool Field_new_decimal::store_value(const my_decimal*, int*)

disable the assert.

also, use the same check for check_that_all_fields_are_given_values()
as it's used in not_null_fields_have_null_values() - to avoid
issuing the same warning twice.
Sergei Golubchik
C/C 3.4.4
Sergei Petrunia
Remove redundant if-statement in Index_prefix_calc::get_avg_frequency

the code went like this:

  for ( ... ; i < prefixes ; ...)
  {
      if (i < prefixes)
      {
        ...
Dave Gosselin
MDEV-35510 ASAN build crashes during bootstrap

Avoid ASAN failure by collecting statistics from Result objects
before cleaning them up.  In related single-table cases, statistics
are maintained directly by the single-table update and delete
functions.
Sergei Golubchik
ColumnStore 5.6.9-1
Sergei Golubchik
Merge branch '10.11 into 11.4
Sergei Petrunia
MDEV-30877: Output cardinality for derived table ignores GROUP BY

(Variant 3)
When a derived table has a GROUP BY clause:

  SELECT ...
    FROM  (SELECT ... GROUP BY col1, col2) AS tbl

The optimizer would use inner join's output cardinality as an estimate
of derived table size, ignoring the fact that GROUP BY operation would
produce much fewer groups.

Add code to produce tighter bounds:
- The GROUP BY list is split into per-table lists. If GROUP BY list has
  expressions that refer to multiple tables, we fall back to join output
  cardinality.
- For each table, the first cardinality estimate is join_tab->read_records.
- Then, we try to get a tighter bound by using index statistics.
- If indexes do not cover all GROUP BY columns, we try to use per-column
  EITS statistics.
Vlad Lesin
MDEV-34489 innodb.innodb_row_lock_time_ms fails

The test fails trying to compare (innodb/lock)_row_lock_time_avg with
some limit. We can't predict (innodb/lock)_row_lock_time_avg value,
because it's counted as the whole waiting time divided by the amount of
waits. Both waiting time and amount of waits depend on the previous
tests execution. The corresponding counters in lock_sys can't be reset
with any query. Remove (innodb/lock)_row_lock_time_avg comparision from
the test.

information_schema.global_status.innodb_row_lock_time can't be reset,
compare its difference instead of absolute value.

Reviewed by: Marko Mäkelä
Sergei Golubchik
MDEV-35612 fix for system-versioning

only ignore fully invisible fields
Kristian Nielsen
MDEV-34705: Binlog-in-engine: Implement PURGE BINARY LOGS

Still ToDo: is to restrict auto-purge so that it does not purge any binlog
file with out-of-band data that might still be needed by a connected slave.

Signed-off-by: Kristian Nielsen <[email protected]>
Marko Mäkelä
MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size

We deprecate and ignore the parameter innodb_buffer_pool_chunk_size
and let the buffer pool size to be changed in arbitrary 1-megabyte
increments, all the way up to innodb_buffer_pool_size_max,
which must be specified at startup.

If innodb_buffer_pool_size_max is not specified, it will default to
twice the specified innodb_buffer_pool_size.

The buffer pool will be mapped in a contiguous memory area that
will be aligned and partitioned into extents of 8 MiB on 64-bit systems
and 2 MiB on 32-bit systems.

Within an extent, the first few innodb_page_size blocks contain
buf_block_t objects that will cover the page frames in the rest
of the extent. In this way, there is a trivial mapping between
page frames and block descriptors and we do not need any
lookup tables like buf_pool.zip_hash or buf_pool_t::chunk_t::map.

We will always allocate the same number of block descriptors for
an extent, even if we do not need all the buf_block_t in the last
extent in case the innodb_buffer_pool_size is not an integer multiple
of the of extents size.

The minimum innodb_buffer_pool_size is 256*5/4 pages. At the default
innodb_page_size=16k this corresponds to 5 MiB. However, now that the
innodb_buffer_pool_size includes the memory allocated for the block
descriptors, the minimum would be innodb_buffer_pool_size=6m.

Innodb_buffer_pool_resize_status: Remove. We will execute
buf_pool_t::resize() synchronously in the thread that is executing
SET GLOBAL innodb_buffer_pool_size. That operation will run until
it completes, or until a KILL statement is executed, the client
is disconnected, the buf_flush_page_cleaner() thread notices that
we are running out of memory, or the server is shut down.

my_large_virtual_alloc(): A new function, similar to my_large_malloc().
FIXME: On Microsoft Windows, let the caller know if large page allocation
was used. In that case, we must disallow buffer pool resizing.

buf_pool_t::create(), buf_pool_t::chunk_t::create(): Only initialize
the first page descriptor of each chunk.

buf_pool_t::lazy_allocate(): Lazily initialize a previously allocated
page descriptor and increase buf_pool.n_blocks, which must be below
buf_pool.n_blocks_alloc.

buf_pool_t::allocate(): Renamed from buf_LRU_get_free_only().

buf_pool_t::LRU_warned: Changed to Atomic_relaxed<bool>,
only to be modified by the buf_flush_page_cleaner() thread.

buf_pool_t::LRU_shrink(): Check if buffer pool shrinking needs
to process a buffer page.

buf_pool_t::resize(): Always zero out b->page.zip.data.
Failure to do so would cause crashes or corruption in
the test innodb.innodb_buffer_pool_resize due to
duplicated allocation in the buddy system.
Before tarting to shrink the buffer pool, run one batch of
buf_flush_page_cleaner() in order to prevent LRU_warn().
Abort shrinking if the buf_flush_page_cleaner() has LRU_warned.

buf_pool_t::first_to_withdraw: The first block descriptor that is
out of the bounds of the shrunk buffer pool.

buf_pool_t::withdrawn: The list of withdrawn blocks.
If buf_pool_t::resize() is aborted, we must be able to resurrect
the withdrawn blocks in the free list.

buf_pool_t::contains_zip(): Added a parameter for the
number of least significant pointer bits to disregard,
so that we can find any pointers to within a block
that is supposed to be free.

buf_pool_t::get_info(): Replaces buf_stats_get_pool_info().

innodb_init_param(): Refactored. We must first compute
srv_page_size_shift and then determine the valid bounds of
innodb_buffer_pool_size.

buf_buddy_shrink(): Replaces buf_buddy_realloc().
Part of the work is deferred to buf_buddy_condense_free(),
which is being executed when we are not holding any
buf_pool.page_hash latch.

buf_buddy_condense_free(): Do not relocate blocks.

buf_buddy_free_low(): Do not care about buffer pool shrinking.
This will be handled by buf_buddy_shrink() and
buf_buddy_condense_free().

buf_buddy_alloc_zip(): Assert !buf_pool.contains_zip()
when we are allocating from the binary buddy system.
Previously we were asserting this on multiple recursion levels.

buf_buddy_block_free(), buf_buddy_free_low():
Assert !buf_pool.contains_zip().

buf_buddy_alloc_from(): Remove the redundant parameter j.

buf_flush_LRU_list_batch(): Add the parameter shrinking.
If we are shrinking, invoke buf_pool_t::LRU_shrink() to see
if we must keep going.

buf_do_LRU_batch(): Skip buf_free_from_unzip_LRU_list_batch()
if we are shrinking the buffer pool. In that case, we want
to minimize the page relocations and just finish as quickly
as possible.

trx_purge_attach_undo_recs(): Limit purge_sys.n_pages_handled()
in every iteration, in case the buffer pool is being shrunk
in the middle of a purge batch.
Sergei Golubchik
ColumnStore 23.10.3-1
Vladislav Vaintroub
MDEV-14091 Support password protected SSL key in server.

Add ssl_passphrase_command server parameter, inspired by Postgres
parameter with the same name.

Based on a patch by Hartmut Holzgraefe
Monty
Fixed costs in JOIN_TAB::estimate_scan_time() and HEAP

Estimate_scan_time() calculates the cost of scanning a derivied table.
The old code did not take into account that the temporary table heap table
may be converted to Aria.

Things fixed:
- Added checking if the temporary tables data will fit in the heap.
  If not, then calculate the cost based on the designated internal
  temporary table engine (Aria).
- Removed MY_MAX(records, 1000) and instead trust the optimizer's
  estimate of records. This reduces the cost of temporary tables a bit
  for smal lables, which caused a few changes in mtr results.
- Fixed cost calculation for HEAP.
  - HEAP costs->row_next_find_cost was not set. This does not affect old
    costs calculation as this cost slot was not used anywhere.
    Now HEAP cost->row_next_find_cost is set, which allowed me to remove
    some duplicated computation in ha_heap::scan_time()


The effect of the above changes
Marko Mäkelä
MDEV-35962 CREATE INDEX fails to heal a FOREIGN KEY constraint

commit_cache_norebuild(): Replace any newly added indexes in
the attached foreign key constraints.
Sergei Golubchik
MDEV-35943 ASAN errors in Query_arena::free_items / fill_schema_table_from_frm

shouldn't try to close the table if open failed.

followup for deb20fb751f6
Vladislav Vaintroub
MDEV-14091 Support password protected SSL key in server.

Add ssl_passphrase_command server parameter, inspired by Postgres
parameter with the same name.

Based on a patch by Hartmut Holzgraefe
Sergei Golubchik
more C API methods in the service_sql

for columnstore
Sergei Golubchik
compilation failure on CentOS 7
Vladislav Vaintroub
MDEV-14091 Support password protected SSL key in server.

Add ssl_passphrase_command server parameter, inspired by Postgres
parameter with the same name.

Based on a patch by Hartmut Holzgraefe
Sergei Petrunia
MDEV-30877: Output cardinality for derived table ignores GROUP BY

(Variant 3)
When a derived table has a GROUP BY clause:

  SELECT ...
    FROM  (SELECT ... GROUP BY col1, col2) AS tbl

The optimizer would use inner join's output cardinality as an estimate
of derived table size, ignoring the fact that GROUP BY operation would
produce much fewer groups.

Add code to produce tighter bounds:
- The GROUP BY list is split into per-table lists. If GROUP BY list has
  expressions that refer to multiple tables, we fall back to join output
  cardinality.
- For each table, the first cardinality estimate is join_tab->read_records.
- Then, we try to get a tighter bound by using index statistics.
- If indexes do not cover all GROUP BY columns, we try to use per-column
  EITS statistics.
Sergei Golubchik
MDEV-33658 1/2 FULLTEXT and SPATIAL keys are not "too long"

max_key_length applies only to PRIMARY/UNIQUE/MULTIPLE keys,
but not to FULLTEXT/SPATIAL/VECTOR keys.

this fixes main.partition_geometries test

followup for ecaedbe299fe
Marko Mäkelä
WIP: MDEV-36024 regression with innodb_encrypt_log

Note: This change breaks crash recovery for innodb_encrypt_log.
Its only purpose is to estimate the performance when the inline
function encryption_crypt() is split in such a way that
encryption_ctx_update() will be invoked multiple times.

Even if this change worked as intended, it would be incompatible with
the existing innodb_encrypt_log format.
Sergei Golubchik
Merge branch '10.5' into 10.6
Sergei Golubchik
MDEV-35368 Validation of SSL certificate fails for mariadb-backup

Just like in CONC-712, disable hostname checks for connections
over unix socket. Even for not self-signed certificates.
Sergei Golubchik
MDEV-35169 cleanup after the test

followup for f6e00abda0c7
Sergei Golubchik
MDEV-35944 DELETE fails to notice transaction abort, violating ACID

Process errors of read_record().

Also, add an assert that Marko requested