#9682 ipa-migrate in stage mode fails with TypeError: 'NoneType' object is not iterable
Closed: fixed by frenaud. Opened by sumenon.

Issue

ipa-migrate in stage mode fails with TypeError: 'NoneType' object is not iterable

Steps to Reproduce

  1. ['ipa-migrate', 'stage-mode', 'master.ipa.test', '-D', 'cn=Directory Manager', '-w', 'Secret.123', '-x', '-o', '/tmp/test.ldif']

Actual behavior

DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 Connecting to local server ...
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 Traceback (most recent call last):
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/sbin/ipa-migrate", line 10, in
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 ipa_migrate.run()
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 2153, in run
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 self.do_migration()
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 2040, in do_migration
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 self.migrateDB()
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 1678, in migrateDB
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 self.processDBOnline()
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 1645, in processDBOnline
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 self.process_db_entry(entry_dn, entry_attrs)
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 1541, in process_db_entry
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 self.write_update_to_ldif(local_entry)
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 File "/usr/lib/python3.12/site-packages/ipaserver/install/ipa_migrate.py", line 625, in write_update_to_ldif
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 for val in vals:
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 ^^^^
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:557 TypeError: 'NoneType' object is not iterable
DEBUG ipatests.pytest_ipa.integration.host.Host.replica0.cmd94:transport.py:217 Exit code: 1
(what happens)

Expected behavior

Fix the traceback

Version/Release/Distribution

4.13.0.dev-0.fc40

Additional info


Job Run
http://freeipa-org-pr-ci.s3-website.eu-central-1.amazonaws.com/jobs/81753cc8-8fa1-11ef-b473-fa163e2a1f74/report.html

Logs Directory
http://freeipa-org-pr-ci.s3-website.eu-central-1.amazonaws.com/jobs/81753cc8-8fa1-11ef-b473-fa163e2a1f74/test_integration-test_ipa_ipa_migration.py-TestIPAMigrateCLIOptions-test_ipa_migrate_with_log_file_option/

The issue happens when migrating the entry uid=admin,cn=users,cn=accounts,dc=ipa,dc=test.

pdb shows:

(Pdb) ldif_entry
'dn: uid=admin,cn=users,cn=accounts,dc=ipa,dc=test\nchangetype: modify\nreplace: uidNumber\nuidNumber: -1\n-\nreplace: gidNumber\ngidNumber: -1\n-\ndelete: ipaNTHash\n'
(Pdb) mod
(1, 'ipaNTHash', None)

ipaNTHash attribute must be deleted, vals = mod[2] which is None and raises an exception in the line for val in vals. Relevant code: https://github.com/freeipa/freeipa/blob/163bf3550b761e78294b693dd880022988c8a232/ipaserver/install/ipa_migrate.py#L612-L626

@mreynolds could you have a look? Thanks

Metadata Update from @frenaud:
- Issue assigned to mreynolds

@mreynolds could you have a look? Thanks

On it...

Upstream PR:

https://github.com/freeipa/freeipa/pull/7572

master:

  • 1f5954260859b8b891065c023316bd326f2a7680 ipa-migrate - dryrun write updates crashes when removing values

ipa-4-12:

  • 3d0962014adda39b754c4274ccb5ca5d70963c33 ipa-migrate - dryrun write updates crashes when removing values

Metadata Update from @frenaud:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

Metadata Update from @frenaud:
- Custom field rhbz adjusted to https://issues.redhat.com/browse/RHEL-66597

Metadata Update from @frenaud:
- Custom field rhbz adjusted to https://issues.redhat.com/browse/RHEL-66597, https://issues.redhat.com/browse/RHEL-67409 (was: https://issues.redhat.com/browse/RHEL-66597)

Metadata