• Kirill Smelkov's avatar
    go/zeo: tests: Terminate spawned processses with SIGTERM instead of SIGKILL · b516190c
    Kirill Smelkov authored
    For ZEO it is not strictly required, but for upcoming NEO for example
    NEOCluster needs to shutdown gracefully, else there are processes left for e.g.
    storage nodes and they dump somthing as below on the terminal after tests
    completion:
    
        === RUN   TestLoad
        2020/10/21 14:33:00 zodb: FIXME: open ../zodb/storage/fs1/testdata/1.fs: raw cache is not ready for invalidations -> NoCache forced
        === RUN   TestLoad/py
        I: runneo.py: /tmp/neo445013868/1: Started master(s): 127.0.0.1:24661
        WARNING: This is not the recommended way to import data to NEO: you should use the Importer backend instead.
        NEO also does not implement IStorageRestoreable interface, which means that undo information is not preserved when using this tool: conflict resolution could happen when undoing an old transaction.
        Migrating from ../zodb/storage/fs1/testdata/1.fs to 127.0.0.1:24661
        Migration done in 0.19877
        --- PASS: TestLoad (0.75s)
            --- PASS: TestLoad/py (0.74s)
        PASS
        ok      lab.nexedi.com/kirr/neo/go/neo  0.749s
        (neo) (z-dev) (g.env) kirr@deco:~/src/neo/src/lab.nexedi.com/kirr/neo/go/neo$ Traceback (most recent call last):
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/tests/functional/__init__.py", line 182, in start
            getattr(neo.scripts,  command).main()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/scripts/neostorage.py", line 66, in main
            app.run()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/app.py", line 147, in run
            self._run()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/app.py", line 178, in _run
            self.doOperation()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/app.py", line 266, in doOperation
            poll()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/app.py", line 87, in _poll
            self.em.poll(1)
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/lib/event.py", line 155, in poll
            self._poll(blocking)
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/lib/event.py", line 253, in _poll
            timeout_object.onTimeout()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/lib/event.py", line 259, in onTimeout
            on_timeout()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/database/manager.py", line 207, in _deferredCommit
            self.commit()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/database/manager.py", line 193, in commit
            self._commit()
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/database/sqlite.py", line 90, in _commit
            retry_if_locked(self.conn.commit)
          File "/home/kirr/src/neo/src/lab.nexedi.com/kirr/neo/neo/storage/database/sqlite.py", line 45, in retry_if_locked
            return f(*args)
        OperationalError: disk I/O error
    b516190c
zeo_test.go 7.07 KB