modoboa / modoboa-installer

An installer for Modoboa
MIT License
258 stars 135 forks source link

Installer fails on new installation #520

Closed ClemStrummer closed 5 months ago

ClemStrummer commented 1 year ago

Impacted versions

latest (2.2.0)

Steps to reproduce

  1. Installation is in an lxc container (host Debian 12, container Debian 12), all necessary ports (http(s), smtp, imap, sieve, etc.) are accessible from the internet
  2. Prepare environment (python3, python3-virtualenv, python3-pip installed)
  3. Start installer from modoboa-installer directory as root ./run.py --stop-after-configfile-check
  4. change newly created installer.cfg: enable letsencrypt, change hostname
  5. ./run.py --debug
  6. installer runs w/o errors until installing modoboa itself:
  7. exception (type error, see below)

Full trace using --debug option or current behaviour

Failed to decode some part of the version of modoboa
Traceback (most recent call last):
  File "/root/modoboa-installer/./run.py", line 282, in <module>
    main(sys.argv[1:])
  File "/root/modoboa-installer/./run.py", line 266, in main
    scripts.install(appname, config, args.upgrade, args.restore)
  File "/root/modoboa-installer/modoboa_installer/scripts/__init__.py", line 29, in install
    getattr(script, appname.capitalize())(config, upgrade, archive_path).run()
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 205, in run
    self.install_config_files()
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 158, in install_config_files
    config_files = self.get_config_files()
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/modoboa-installer/modoboa_installer/scripts/modoboa.py", line 224, in get_config_files
    if self.modoboa_2_2_or_greater:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 56, in modoboa_2_2_or_greater
    modoboa_version[0] > 2
TypeError: '>' not supported between instances of 'str' and 'int'

Comment: tried to dig into this a tiny bit (inserting some el-cheapo debugging print()'s in base.py) - it seems that modoboa_version is not getting assigned correctly at all, as there was also no value in modoboa_version[1] . Maybe this helps...

Probably related to issue #518

Expected behavior

Normal install w/o errors, particularly correct decoding of modoboa version

Video/Screenshot link (optional)

tonioo commented 1 year ago

@ClemStrummer Could you paste the full installation trace using --debug option please?

ClemStrummer commented 1 year ago

installer.log

This is the combined output of stdout and stderr - I did no fresh install, so quite a few 'errors' due to already set up components

JasonHe-WQ commented 1 year ago

Same problem occured

Traceback (most recent call last):
  File "/home/hewenqing/modoboa-installer/run.py", line 282, in <module>
    main(sys.argv[1:])
  File "/home/hewenqing/modoboa-installer/run.py", line 266, in main
    scripts.install(appname, config, args.upgrade, args.restore)
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/__init__.py", line 29, in install
    getattr(script, appname.capitalize())(config, upgrade, archive_path).run()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 205, in run
    self.install_config_files()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 158, in install_config_files
    config_files = self.get_config_files()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/modoboa.py", line 224, in get_config_files
    if self.modoboa_2_2_or_greater:
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 56, in modoboa_2_2_or_greater
    modoboa_version[0] > 2
TypeError: '>' not supported between instances of 'str' and 'int'
JasonHe-WQ commented 1 year ago

Same problem occured

Traceback (most recent call last):
  File "/home/hewenqing/modoboa-installer/run.py", line 282, in <module>
    main(sys.argv[1:])
  File "/home/hewenqing/modoboa-installer/run.py", line 266, in main
    scripts.install(appname, config, args.upgrade, args.restore)
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/__init__.py", line 29, in install
    getattr(script, appname.capitalize())(config, upgrade, archive_path).run()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 205, in run
    self.install_config_files()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 158, in install_config_files
    config_files = self.get_config_files()
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/modoboa.py", line 224, in get_config_files
    if self.modoboa_2_2_or_greater:
  File "/home/hewenqing/modoboa-installer/modoboa_installer/scripts/base.py", line 56, in modoboa_2_2_or_greater
    modoboa_version[0] > 2
TypeError: '>' not supported between instances of 'str' and 'int'

Error confirmed, when using without venv, it will occur

JasonHe-WQ commented 1 year ago

Impacted versions

latest (2.2.0)

  • Distribution: Debian
  • Codename: Bookworm (12)
  • Arch: 64 Bits
  • Database: PostgreSQL

Steps to reproduce

  1. Installation is in an lxc container (host Debian 12, container Debian 12), all necessary ports (http(s), smtp, imap, sieve, etc.) are accessible from the internet
  2. Prepare environment (python3, python3-virtualenv, python3-pip installed)
  3. Start installer from modoboa-installer directory as root ./run.py --stop-after-configfile-check
  4. change newly created installer.cfg: enable letsencrypt, change hostname
  5. ./run.py --debug
  6. installer runs w/o errors until installing modoboa itself:
  7. exception (type error, see below)

Full trace using --debug option or current behaviour

Failed to decode some part of the version of modoboa
Traceback (most recent call last):
  File "/root/modoboa-installer/./run.py", line 282, in <module>
    main(sys.argv[1:])
  File "/root/modoboa-installer/./run.py", line 266, in main
    scripts.install(appname, config, args.upgrade, args.restore)
  File "/root/modoboa-installer/modoboa_installer/scripts/__init__.py", line 29, in install
    getattr(script, appname.capitalize())(config, upgrade, archive_path).run()
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 205, in run
    self.install_config_files()
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 158, in install_config_files
    config_files = self.get_config_files()
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/modoboa-installer/modoboa_installer/scripts/modoboa.py", line 224, in get_config_files
    if self.modoboa_2_2_or_greater:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/modoboa-installer/modoboa_installer/scripts/base.py", line 56, in modoboa_2_2_or_greater
    modoboa_version[0] > 2
TypeError: '>' not supported between instances of 'str' and 'int'

Comment: tried to dig into this a tiny bit (inserting some el-cheapo debugging print()'s in base.py) - it seems that modoboa_version is not getting assigned correctly at all, as there was also no value in modoboa_version[1] . Maybe this helps...

Probably related to issue #518

Expected behavior

Normal install w/o errors, particularly correct decoding of modoboa version

Video/Screenshot link (optional)

Maybe you can try it on debian with venv and pip

SomethingGeneric commented 11 months ago

So just to throw in my 2-cents, I had some error similar to this until i ran it as a sudo user instead of root.... Funky stuff

SomethingGeneric commented 11 months ago

My guess is it's something with how the installer handles root vs sudo when it sets up /srv/modoboa but that's just a guess

stale[bot] commented 7 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.