Получение неверного дескриптора файла Ошибка в python после перехвата глубины рекурсии превышена - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь узнать больше о процессе дамонизации в python. Я запустил приведенный ниже код и получил две ошибки

  1. [2020-03-19 08: 43: 06,079 40116 MainProcess test.py file_read 35: ERROR] максимальная глубина рекурсии, превышенная в cmp
  2. [2020-03-19 08: 43: 08,766 40116 MainProcess test.py file_read 35: ERROR] [Errno 9] Неверный дескриптор файла [при попытке закрыть foo]

Хотя 1 имеет смысл, но 2-го нет. Может ли кто-нибудь помочь мне здесь?

def file_read(filename):
    file_content = None
    with open(filename, "r") as file:
        try:
            logging.finfo('loading file %s' % filename)
            file_content = read_meta_file(file)

        except (FileNotFoundError, ApacheConfigError) as err:
            logging.exception(err)

        with daemon.DaemonContext():
            pass

        try:
            file_read(filename)
        except Exception as err:
            logging.ferror(err)
            raise


    return file_content


file_read('foo.txt')

1 Ответ

0 голосов
/ 19 марта 2020

Вы используете рекурсию, то есть функцию, вызывающую себя, у вас должно быть условие прерывания, которое в конечном итоге завершит рекурсию. В вашем коде нет никаких нарушающих условий.

...