learningequality / kolibri

Kolibri Learning Platform: the offline app for universal education
https://learningequality.org/kolibri/
MIT License
780 stars 647 forks source link

Kolibri cannot start on Windows: OSError: [WinError 6] The handle is invalid #10651

Open lsolesen opened 1 year ago

lsolesen commented 1 year ago

Observed behavior

Kolibri tries starting up, but is not able to. It gets:

Kolibri is unable to start. You can find additional information in your Kolibri home folder.

Looking into the logs, I get the following: Windows 10 - completely new reinstall - and Kolibri 0.15.2 just installed. Kolibri was able to work until restarting. Then it did not work anymore.

Errors and logs

--- Logging error ---
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\kolibri\utils\logger.py", line 46, in emit
    self.flush()
  File "c:\python36\lib\logging\__init__.py", line 978, in flush
    self.stream.flush()
OSError: [WinError 6] The handle is invalid
Call stack:
  File "c:\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python36\Scripts\kolibri.exe\__main__.py", line 9, in <module>
    sys.exit(main())
  File "c:\python36\lib\site-packages\kolibri\dist\click\core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "c:\python36\lib\site-packages\kolibri\dist\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "c:\python36\lib\site-packages\kolibri\dist\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\python36\lib\site-packages\kolibri\utils\cli.py", line 200, in invoke
    return super(KolibriDjangoCommand, self).invoke(ctx)
  File "c:\python36\lib\site-packages\kolibri\dist\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\python36\lib\site-packages\kolibri\dist\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\python36\lib\site-packages\kolibri\utils\cli.py", line 262, in start
    background=background,
  File "c:\python36\lib\site-packages\kolibri\utils\server.py", line 722, in start
    bus.run()
  File "c:\python36\lib\site-packages\kolibri\utils\server.py", line 704, in run
    self.graceful()
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\process.py", line 132, in graceful
    self.transition('IDLE')
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\base.py", line 186, in transition
    output.append(self._transition(next_state))
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\base.py", line 215, in _transition
    return self.publish(newstate, *args, **kwargs)
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\base.py", line 273, in publish
    result = listener(*args, **kwargs)
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\plugins\signalhandler.py", line 72, in subscribe_handlers
    self.set_handler(sig, func)
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\plugins\signalhandler.py", line 124, in set_handler
    self.bus.log('Listening for %s.' % signame)
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\base.py", line 362, in log
    self.publish('log', msg, level)
  File "c:\python36\lib\site-packages\kolibri\dist\magicbus\base.py", line 273, in publish
    result = listener(*args, **kwargs)
  File "c:\python36\lib\site-packages\kolibri\utils\server.py", line 373, in log
    logger.log(level, msg)
  File "c:\python36\lib\logging\__init__.py", line 1374, in log
    self._log(level, msg, args, **kwargs)
  File "c:\python36\lib\logging\__init__.py", line 1444, in _log
    self.handle(record)
  File "c:\python36\lib\logging\__init__.py", line 1454, in handle
    self.callHandlers(record)
  File "c:\python36\lib\logging\__init__.py", line 1516, in callHandlers
    hdlr.handle(record)
  File "c:\python36\lib\logging\__init__.py", line 865, in handle
    self.emit(record)
  File "c:\python36\lib\site-packages\kolibri\utils\logger.py", line 50, in emit
    self.handleError(record)
Message: 'Listening for SIGTERM.'
Arguments: ()

Expected behavior

User-facing consequences

Steps to reproduce

Context

lsolesen commented 1 year ago

I am able to start Kolibri with this command.

C:\Python36\Scripts\kolibri.exe start --foreground

But then the deamon will not show in the lower right corner.