Attempting to add an object through QMP with an id that is already used leads to a qemu abort. This is a regression since d2623129a7de ("qom: Drop parameter @errp of object_property_add() & friends").
The first patch fixes the issue and the second patch adds a test to check the error is gracefully returned to the QMP client. The last patch can be considered independently. It merges all the object-add tests into a single test function and cover new failure cases. Best Regards Eric This series can be found at: https://github.com/eauger/qemu/tree/qom-graceful-v5 History: - v4 -> v5: - Use 1MB instead of 4GB as size in the hope it removes the patchew error - v3 -> v4: - addressed style comment from Markus - added patch 3 - v2 -> v3: - don't take the object reference on failure in object_property_try_add_child - add g_assert_nonnull(resp) in 2/2 while keeping Thomas A-b - v1 -> v2: - use the try terminology. - turn object_property_try_add() into a non-static function - add the test Eric Auger (3): qom: Introduce object_property_try_add_child() tests/qmp-cmd-test: Add qmp/object-add-duplicate-id tests/qmp-cmd-test: Add qmp/object-add-failure-modes include/qom/object.h | 26 ++++++++- qom/object.c | 21 +++++-- qom/object_interfaces.c | 7 ++- tests/qtest/qmp-cmd-test.c | 109 +++++++++++++++++++++++++++++++++++-- 4 files changed, 149 insertions(+), 14 deletions(-) -- 2.20.1