tarantool / mkrepo

Maintain DEB and RPM repositories on S3
69 stars 24 forks source link

Crashing while dump "primary" file #48

Closed LeonidVas closed 1 year ago

LeonidVas commented 2 years ago

The problem is that in function "parse_ver_str" for "rel" by default the "None" is used.

Traceback (most recent call last):
  File "/home/leonid/work/mail/mkrepo/./mkrepo", line 4, in <module>
    mkrepo.main()
  File "/home/leonid/work/mail/mkrepo/mkrepo.py", line 116, in main
    update_repo(path, args)
  File "/home/leonid/work/mail/mkrepo/mkrepo.py", line 58, in update_repo
    rpmrepo.update_repo(stor, args.sign, args.temp_dir, args.force)
  File "/home/leonid/work/mail/mkrepo/rpmrepo.py", line 1071, in update_repo
    primary_str = dump_primary(primary)
  File "/home/leonid/work/mail/mkrepo/rpmrepo.py", line 496, in dump_primary
    for key in sorted(fmt['provides']):
TypeError: '<' not supported between instances of 'str' and 'NoneType'

fmt['provides']:

{
  ('tarantool-lrexlib-gnu', '0', None, '2.9.0.4'):{'name': 'tarantool-lrexlib-gnu', 'epoch': '0', 'rel': None, 'ver': '2.9.0.4', 'flags': 'EQ'},
  ('tarantool-lrexlib-gnu', '0', '1.el7.centos', '2.9.0.4'):{'name': 'tarantool-lrexlib-gnu', 'epoch': '0', 'rel': '1.el7.centos', 'ver': '2.9.0.4', 'flags': 'EQ'},
  ('tarantool-lrexlib-gnu(x86-64)', '0', '1.el7.centos', '2.9.0.4'):{'name': 'tarantool-lrexlib-gnu(x86-64)', 'epoch': '0', 'rel': '1.el7.centos', 'ver': '2.9.0.4', 'flags': 'EQ'}
}

https://rws.tarantool.org/live/1.10/el/7/x86_64

AFAIU the same problem can occur if "rel" is absent for a package in a previously generated "primary" file.

ylobankov commented 1 year ago

Looks like it was already fixed by https://github.com/tarantool/mkrepo/pull/63 and https://github.com/tarantool/mkrepo/pull/65.