[MDEV-4786] merge 10.0-monty → 10.0 Created: 2013-07-15 Updated: 2013-09-03 Resolved: 2013-08-12 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | 10.0.4 |
| Type: | Task | Priority: | Major |
| Reporter: | Sergei Golubchik | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
| Comments |
| Comment by Sergei Petrunia [ 2013-07-24 ] |
|
About filesort_debug.test failure. #define ER_OUT_OF_SORTMEMORY 1038 The difference comes from the following. mysql-5.6 has these lines in my_malloc(): DBUG_EXECUTE_IF("simulate_out_of_memory", added by alexey.kopytov@sun.com-20100521112348-rz0zm53wbo6g2aqr, 10.0-serg doesn't have them. This causes "simulate_out_of_memory" condition to remain switched on, which causes malloc failure when we're trying to allocate a memory for the error message. Which, in turn, produces a ER_OUT_OF_RESOURCES error here: #0 sql_alloc_error_handler () at /home/psergey/dev2/10.0-serg/sql/thr_malloc.cc:49 |
| Comment by Sergei Petrunia [ 2013-07-24 ] |
|
I've tried to figure out which changeset exchanged the order of push_warning() and set_error_status() calls in THD::raise_condition(). It was this merge changeset (and the change was introduced by the merge cset itself, not by one of the merged-in csets) : revno: 3774 [merge] |
| Comment by Sergey Vojtovich [ 2013-07-24 ] |
|
Hi Sergei, yes, that's what I was afraid of. I guess it is just merge mistake. Regards, |
| Comment by Sergey Vojtovich [ 2013-07-25 ] |
|
TDC_RT_REMOVE_NOT_OWN_KEEP_SHARE is not same as TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE. Comment in sql_table.cc says: Storage engine has requested exclusive lock only for prepare phase At this moment we hold exclusive metadata lock, all we should do is purge unused TABLE objects. |
| Comment by Sergey Vojtovich [ 2013-08-02 ] |
|
HA_READ_OUT_OF_SYNC was introduced with the undermentioned revision. Yet the Originally it was named HA_STORES_NO_ROWS, which I find applicable to blackhole only. But HA_READ_OUT_OF_SYNC is a bit more generic: the idea is that storage engine doesn't E.g. abstract storage engine may consume N rows [on slave], but return single aggregated result row. revno: 3763 [merge] CONTEXT With RBR, if a table has no indexes, the slave does a full table scan for each SOLUTION When there is a table without a PK or an INDEX, create a temporary in-memory |
| Comment by Sergey Vojtovich [ 2013-08-05 ] |
|
In 10.0 TDC_RT_REMOVE_NOT_OWN is almost unused in favor of TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE. But technically I failed to understand it's purpose: wait_while_table_is_used() upgrades shared meta-data lock to exclusive and no other thread is permitted to access this table. Why do we need extra protection mechanism in table definition cache? If TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE serves a purpose indeed, we need to restore it. |
| Comment by Sergey Vojtovich [ 2013-08-05 ] |
|
CREATE TABLE t1(a INT, b VARCHAR(255)); Is the above alter good for in-place algorithm? If it is not allowed or (allowed and format is static): remove juggling with HA_OPTION_PACK_RECORD in mysql_create_frm_image(). |
| Comment by Sergey Vojtovich [ 2013-08-07 ] |
|
ps_ddl.test doesn't contain a test case for revision alexander.nozdrin@oracle.com-20111219114211-49pqi0wfs9p4o9yi Verified that the problem is applicable to our code, test case from the above revision fails, original test case from BUG#36002 fails. |
| Comment by Sergey Vojtovich [ 2013-08-07 ] |
|
Merge pushed, remaining items will be moved to another post-10.0.4 task. |