timlau / dnf-apiex

Test of the dnf python api
GNU General Public License v3.0
5 stars 1 forks source link

dnf-remove example crashes #1

Open anaselli opened 8 years ago

anaselli commented 8 years ago

I removed the line 83: https://github.com/timlau/dnf-apiex/blob/master/dnf-remove.py#L83 since it seems that property is not accessible any more in that way at least, but the second transaction, e.g. the remove package one, fails with a core dump. So no backtrace is available. No problems if we install two packages or remove to packages, the problem is in mixing installing and removing

anaselli commented 8 years ago

python3 dnf-remove.py =============== install btanks ===================== Depsolve rc: True Install - btanks-0.9.8083-9.mga6.x86_64 Install - btanks-data-0.9.8083-9.mga6.noarch Install - lib64lua5.1-5.1.5-10.mga6.x86_64 Downloading : 3 files, 28760170 bytes Progress : 0 % (0/3) Running Transaction None

of packages added : 1

Depsolve rc: True Erase - btanks-0.9.8083-9.mga6.x86_64 Erase - btanks-data-0.9.8083-9.mga6.noarch Erase - lib64lua5.1-5.1.5-10.mga6.x86_64 Downloading : 0 files, 0 bytes

Running Transaction Errore di segmentazione (core dump creato)

anaselli commented 8 years ago

to add more info why i removed line 83: python3 dnf-remove.py =============== install btanks ===================== Depsolve rc: True Install - btanks-0.9.8083-12.fc23.x86_64 Install - btanks-data-0.9.8083-12.fc23.noarch Install - SDL-1.2.15-20.fc23.x86_64 Install - SDL_image-1.2.12-13.fc23.x86_64 Downloading : 4 files, 29358764 bytes Starting to download : btanks-0.9.8083-12.fc23.x86_64.rpm Starting to download : btanks-data-0.9.8083-12.fc23.noarch.rpm Starting to download : SDL_image-1.2.12-13.fc23.x86_64.rpm Progress : 99 % (3/4) Running Transaction None Traceback (most recent call last): File "dnf-remove.py", line 108, in de = DnfExample() File "dnf-remove.py", line 83, in init self.goal_parameters.allow_uninstall = True AttributeError: 'DnfExample' object has no attribute 'goal_parameters'

anaselli commented 8 years ago

and same as in previous comment but in fedora 23 python3 dnf-remove.py =============== install btanks ===================== Depsolve rc: True Install - btanks-0.9.8083-12.fc23.x86_64 Install - btanks-data-0.9.8083-12.fc23.noarch Install - SDL-1.2.15-20.fc23.x86_64 Install - SDL_image-1.2.12-13.fc23.x86_64 Downloading : 4 files, 29358764 bytes Progress : 0 % (0/4) Running Transaction None

of packages added : 1

Depsolve rc: True Erase - SDL-1.2.15-20.fc23.x86_64 Erase - SDL_image-1.2.12-13.fc23.x86_64 Erase - btanks-0.9.8083-12.fc23.x86_64 Erase - btanks-data-0.9.8083-12.fc23.noarch Downloading : 0 files, 0 bytes

Running Transaction Errore di segmentazione (core dump creato)

anaselli commented 8 years ago

python3 -mpdb dnf-remove.py

/home/anaselli/src/dnf-apiex/dnf-remove.py(4)() -> from future import print_function (Pdb) b 86 Breakpoint 1 at /home/anaselli/src/dnf-apiex/dnf-remove.py:86 (Pdb) c =============== install btanks ===================== Depsolve rc: True Install - btanks-0.9.8083-12.fc23.x86_64 Install - btanks-data-0.9.8083-12.fc23.noarch Install - SDL-1.2.15-20.fc23.x86_64 Install - SDL_image-1.2.12-13.fc23.x86_64 Downloading : 4 files, 29358764 bytes Progress : 0 % (0/4) Running Transaction None

of packages added : 1

/home/anaselli/src/dnf-apiex/dnf-remove.py(86)init() -> self.apply_transaction() (Pdb) s --Call-- /home/anaselli/src/dnf-apiex/dnf-remove.py(88)apply_transaction() -> def apply_transaction(self): (Pdb) s /home/anaselli/src/dnf-apiex/dnf-remove.py(89)apply_transaction() -> rc = self.resolve() (Pdb) n /home/anaselli/src/dnf-apiex/dnf-remove.py(90)apply_transaction() -> print("Depsolve rc: ", rc) (Pdb) n Depsolve rc: True /home/anaselli/src/dnf-apiex/dnf-remove.py(91)apply_transaction() -> if rc: (Pdb) n /home/anaselli/src/dnf-apiex/dnf-remove.py(92)apply_transaction() -> to_dnl = self.get_packages_to_download() (Pdb) n Erase - SDL-1.2.15-20.fc23.x86_64 Erase - SDL_image-1.2.12-13.fc23.x86_64 Erase - btanks-0.9.8083-12.fc23.x86_64 Erase - btanks-data-0.9.8083-12.fc23.noarch /home/anaselli/src/dnf-apiex/dnf-remove.py(94)apply_transaction() -> self.download_packages(to_dnl, self.progress) (Pdb) n Downloading : 0 files, 0 bytes /home/anaselli/src/dnf-apiex/dnf-remove.py(95)apply_transaction() -> print("\nRunning Transaction") (Pdb) n

Running Transaction

/home/anaselli/src/dnf-apiex/dnf-remove.py(96)apply_transaction() -> print(self.do_transaction()) (Pdb) s --Call-- /usr/lib/python3.4/site-packages/dnf/base.py(548)do_transaction() -> def do_transaction(self, display=()): (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(550)do_transaction() -> if not isinstance(display, collections.Sequence): (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(553)do_transaction() -> [dnf.yum.rpmtrans.LoggingTransactionDisplay()] + list(display) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(555)do_transaction() -> if not self.transaction: (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(558)dotransaction() -> logger.info(('Running transaction check')) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(559)do_transaction() -> lock = dnf.lock.build_rpmdb_lock(self.conf.persistdir) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(560)do_transaction() -> with lock: (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(562)do_transaction() -> dscb = self.ds_callback (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(563)do_transaction() -> self.ds_callback = None (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(564)do_transaction() -> self.transaction.populate_rpm_ts(self.ts) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(566)do_transaction() -> msgs = self._run_rpm_check() (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(567)do_transaction() -> if msgs: (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(574)dotransaction() -> logger.info(('Transaction check succeeded.')) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(576)do_transaction() -> timer = dnf.logging.Timer('transaction test') (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(577)dotransaction() -> logger.info(('Running transaction test')) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(578)do_transaction() -> if not self.conf.diskspacecheck: (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(581)do_transaction() -> self.ts.order() # order the transaction (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(582)do_transaction() -> self.ts.clean() # release memory not needed beyond this point (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(584)do_transaction() -> testcb = dnf.yum.rpmtrans.RPMTransaction(self, test=True) (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(585)do_transaction() -> tserrors = self.ts.test(testcb) (Pdb) s --Call-- /usr/lib/python3.4/site-packages/dnf/base.py(346)ts() -> @property (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(350)ts() -> if self._ts is not None: (Pdb) n /usr/lib/python3.4/site-packages/dnf/base.py(351)ts() -> return self._ts (Pdb) n --Return-- /usr/lib/python3.4/site-packages/dnf/base.py(351)ts()-> -> return self._ts (Pdb) n --Call-- /usr/lib/python3.4/site-packages/dnf/rpm/transaction.py(100)test() -> def test(self, cb, conf={}): (Pdb) n /usr/lib/python3.4/site-packages/dnf/rpm/transaction.py(104)test() -> origflags = self.getTsFlags() (Pdb) n /usr/lib/python3.4/site-packages/dnf/rpm/transaction.py(105)test() -> self.addTsFlag(rpm.RPMTRANS_FLAG_TEST) (Pdb) n /usr/lib/python3.4/site-packages/dnf/rpm/transaction.py(108)test() -> if conf.get('diskspacecheck') == 0: (Pdb) n /usr/lib/python3.4/site-packages/dnf/rpm/transaction.py(110)test() -> tserrors = self.ts.run(cb.callback, '') (Pdb) n Errore di segmentazione (core dump creato)

jsilhan commented 8 years ago

self.goal_parameters.allow_uninstall = True

allow_erasing option is now in cli.demands.allow_erasing.

Have you run it under the root?

anaselli commented 8 years ago

yes as root, packages are installed correctly, is the second transaction that crashes the one that should remove them. Do you think is the cli.demands.allow_erasing property that makes that working?