Hi @albourg,
Is log_warnings set to 11 or higher in your instance?
I just tested and encountered the same behavior.
Standalone MariaDB 11.4.12, performance_schema=ON and log_warnings=11:
# pt-online-schema-change --alter "ADD INDEX idx_id(id)" --alter-foreign-keys-method=auto --no-drop-old-table --execute D=test,t=parent
No slaves found. See --recursion-method if host mariadb-01 has slaves.
Not checking slave lag because no slaves were found and --check-replica-lag was not specified.
Operation, tries, wait:
analyze_table, 10, 1
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
Child tables:
`test`.`child` (approx. 1 rows)
Will automatically choose the method to update foreign keys.
Altering `test`.`parent`...
Creating new table...
Created new table test._parent_new OK.
Altering new table...
Altered `test`.`_parent_new` OK.
2026-09-18T01:02:36 Creating triggers...
2026-09-18T01:02:37 Created triggers OK.
2026-09-18T01:02:37 Copying approximately 1 rows...
2026-09-18T01:02:37 Copied rows OK.
2026-09-18T01:02:37 Max rows for the rebuild_constraints method: 4000
Determining the method to update foreign keys...
2026-09-18T01:02:37 `test`.`child`: 1 rows; can use rebuild_constraints
2026-09-18T01:02:37 Rebuilding foreign key constraints...
2026-09-18T01:02:37 Rebuilt foreign key constraints OK.
2026-09-18T01:02:37 Analyzing new table...
2026-09-18T01:02:37 Swapping tables...
2026-09-18T01:02:37 Swapped original and new tables OK.
Not dropping old table because --no-drop-old-table was specified.
2026-09-18T01:02:37 Dropping triggers...
2026-09-18T01:02:37 Dropped triggers OK.
Successfully altered `test`.`parent`.
Error log:
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/cond_instances.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_current.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_history.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_history_long.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_host_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_thread_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_user_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_global_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_current.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_history.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_history_long.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18 1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
...
Simply querying information_schema.key_column_usage like this produces these note messages (only the first time when the tables are not in the table definition cache, next you will need to flush tables). This is also the query that pt-osc executes:
MariaDB [(none)]> SELECT table_schema, table_name
-> FROM information_schema.key_column_usage
-> WHERE referenced_table_schema = 'test'
-> AND referenced_table_name = 'parent';
+--------------+------------+
| table_schema | table_name |
+--------------+------------+
| test | child |
+--------------+------------+
1 row in set (0.038 sec)
MariaDB [(none)]> flush tables;
Query OK, 0 rows affected (0.015 sec)
MariaDB [(none)]> SELECT table_schema, table_name
-> FROM information_schema.key_column_usage
-> WHERE referenced_table_schema = 'test'
-> AND referenced_table_name = 'parent';
+--------------+------------+
| table_schema | table_name |
+--------------+------------+
| test | child |
+--------------+------------+
1 row in set, 81 warnings (0.020 sec)
MariaDB [(none)]> show warnings;
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
| Note | 29 | File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/cond_instances.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_current.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_history.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_history_long.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_summary_by_host_by_event_name.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_summary_by_thread_by_event_name.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_summary_by_user_by_event_name.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_stages_summary_global_by_event_name.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_statements_current.frm' not found (Errcode: 2 "No such file or directory") |
| Note | 29 | File './performance_schema/events_statements_history.frm' not found (Errcode: 2 "No such file or directory") |
...
64 rows in set (0.004 sec)
Or even just executing SHOW CREATE TABLE for any of the PERFORMANCE_SCHEMA tables produces the note message:
MariaDB [(none)]> flush tables;
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> show create table performance_schema.accounts \G
*************************** 1. row ***************************
Table: accounts
Create Table: CREATE TABLE `accounts` (
`USER` char(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT 'The connection''s client user name for the connection, or NULL if an internal thread.',
`HOST` char(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT 'The connection client''s host name, or NULL if an internal thread.',
`CURRENT_CONNECTIONS` bigint(20) NOT NULL COMMENT 'Current connections for the account.',
`TOTAL_CONNECTIONS` bigint(20) NOT NULL COMMENT 'Total connections for the account.'
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
1 row in set, 1 warning (0.004 sec)
MariaDB [(none)]> show warnings;
+-------+------+---------------------------------------------------------------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------------------------------------------------------------+
| Note | 29 | File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory") |
+-------+------+---------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)
Since MariaDB 10.1.1, PERFORMANCE_SCHEMA tables have no .frm files. On open, MariaDB still looks for the .frm files. These note messages are expected and they are only logged to the error log if log_warnings >= 11.