1

ОБНОВИТЬ

Просто поговорив с этими двумя разработчиками, и они оба сказали, что работают под управлением Win XP 2002 SP3. Это может быть проблемой для. Черт, это старое.


Все, я не уверен, что лучший способ описать эту проблему, но здесь идет.

Большинство разработчиков в моей команде используют Windows-боксы. Пара испытывает следующую проблему ...

При запуске команд из командной строки ничего не происходит. Я ничего не имею в виду, командная строка возвращается немедленно, без ошибок, без ничего. Это происходит не каждый раз, но в среднем вам нужно выполнить одну и ту же команду примерно 5 раз, прежде чем она действительно "залипнет" и команда будет выполнена.

Это усугубляется тем фактом, что если команда, выполняемая по очереди, также вызывает другие команды, они также могут потерпеть неудачу.

Чистый эффект от этого - очень неприятное время, когда вы пытаетесь запустить такие вещи, как тесты на огурец из командной строки.

В частности, эти парни пытались выполнить тесты на огурец, но я был свидетелем этого, когда пытался добавить новую коробку с помощью Vagrant этим утром. Обе эти вещи основаны на Ruby, так что, возможно, там что-то есть.

Во всяком случае, мои вопросы к вам:

Имея в виду приведенную выше информацию, испытывали ли вы, что командная строка Windows не выполняет команды произвольно, и если да, то как вы это исправили?

Есть ли какие-либо журналы, на которые я могу посмотреть, чтобы понять, почему команды командной строки могут давать сбой?

1 ответ1

0

Это может быть сложно диагностировать.

Есть ли какие-либо журналы, на которые я могу посмотреть, чтобы понять, почему команды командной строки могут давать сбой?

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

Тем не менее, вы можете использовать Process Monitor (из Sysinternals), который покажет, что у вас происходит (т. Е. Каждый файл, к которому осуществляется доступ, и записи реестра, когда они читаются). Если вы сравните то, что происходит, когда программа ведет себя корректно, с тем, что происходит, когда происходит сбой, это может дать вам представление о том, где программа работает неправильно.

Так как эта проблема проявляется только в программах на основе Ruby, то следующим этапом будет написание / получение очень простой программы ruby (возможно, просто отображающей сообщение), которую вы можете использовать для тестирования среды ruby.

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

Но я подозреваю, что это также сработает, что позволит вам посмотреть на те программы, которые вы пытаетесь запустить.

Если у вас есть исходный код (и поскольку вы упоминаете разработчиков, я предполагаю, что у вас есть), то вам нужно проверить свой источник на наличие кода, который может привести к сбою, но который, по вашему мнению, будет работать, то есть там, где вы не проверяете успехи. Я ничего не знаю о ruby, но я предполагаю, что, если он вызывает другие программы, он вернет состояние ошибки, если этот вызов не удастся, и это значение состояния может не проверяться и не регистрироваться.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .