|
баг с double
|
|||
---|---|---|---|
#18+
Приветствую. Столкнулся с проблемой только на одном сервере (тестировал 5-6 рабочих машин и 4 сервера). Гугл ищет только проблемы с округлением, а тут идет задваивание. Т.е. 2.0 может стать 3.99999998 протестируйте у кого будет возможность. Нужно в проводнике встать на этот vbs файл и жать ентер (т.е. запуск скрипта много раз). Ошибка выходит рандомно, примерно после 4-5 секунд. Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:22 |
|
баг с double
|
|||
---|---|---|---|
#18+
Нафига тут MsgBox в цикле? Это обязательно для воспроизведения ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 15:39 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoТ.е. 2.0 может стать 3.99999998а как с помощью данного файла выявляется именно это значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 15:40 |
|
баг с double
|
|||
---|---|---|---|
#18+
У меня складывается сильное убеждение, что нас разводят. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 23:26 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoСтолкнулся с проблемой только на одном сервере... протестируйте у кого будет возможностьСами протестируйте - память у этого сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 23:44 |
|
баг с double
|
|||
---|---|---|---|
#18+
Shocker.ProНафига тут MsgBox в цикле? Это обязательно для воспроизведения ошибки? если жать ентер без цикла, то msgbox закроется и можно не поймать баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 02:44 |
|
баг с double
|
|||
---|---|---|---|
#18+
Shocker.ProserzuzeknoТ.е. 2.0 может стать 3.99999998а как с помощью данного файла выявляется именно это значение? в коде пишешь 2.0, но в памяти может произойти задвой ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 02:45 |
|
баг с double
|
|||
---|---|---|---|
#18+
Shocker.Pro, если вы имели ввиду как я определил число при баге,то можно присвоить данные константы переменным, результат будет аналогичным, и переменную можно вывести в msgbox. Казанский , спасибо за наводку. Попробую (хотя пока понятия не имею каким образом) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 02:50 |
|
баг с double
|
|||
---|---|---|---|
#18+
КазанскийСами протестируйте - память у этого сервера.Если бы память так сильно глючила, что давала бы подобный сбой, мне кажется вообще бы ничего не работало и валилось в BSOD. Возможно, проблема все-таки в движке, который выполняет VBS, точнее в его многозадачности, если сбой происходит именно при попытке запустить сотни скриптов одновременно на выполнение. Естественно, в сочетании с какой-то конфигурацией системы. Либо может даже в компиляторе, который в таких нагруженных условиях сбоит при записи литерала при разборе файла...х.з. serzuzekno, А если запихать этот код тыщу раз, но в один файл, можно добиться подобного сбоя именно при единичном запуске файла? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 05:08 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoесли вы имели ввиду как я определил число при баге,то можно присвоить данные константы переменным, результат будет аналогичным, и переменную можно вывести в msgbox.Что будет, если инициализировать несколко разных констант со значением 2.0 и другими значениями? Сбой будет только в одной из них? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 05:10 |
|
баг с double
|
|||
---|---|---|---|
#18+
Попробовал, у меня не воспроизводится Еще попробовал: Код: vbnet 1. 2. 3. 4. 5. 6.
тоже не вопроизвелось - попробуйте у себя ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 06:23 |
|
баг с double
|
|||
---|---|---|---|
#18+
Shocker.ProПопробовал, у меня не воспроизводится Еще попробовал: Код: vbnet 1. 2. 3. 4. 5. 6.
тоже не вопроизвелось - попробуйте у себя Проверил ваш скрипт в цикле. Из 100 попыток ошибка вышла 5 раз. Shocker.ProВозможно, проблема все-таки в движке, который выполняет VBS, точнее в его многозадачности, если сбой происходит именно при попытке запустить сотни скриптов одновременно на выполнение. Естественно, в сочетании с какой-то конфигурацией системы. Либо может даже в компиляторе, который в таких нагруженных условиях сбоит при записи литерала при разборе файла...х.з. Дело точно не в литерале, так как значения тянулись из БД и скрипт выполняется 1 раз в минуту, т.е. не множество раз в один момент. Shocker.ProЧто будет, если инициализировать несколко разных констант со значением 2.0 и другими значениями? Сбой будет только в одной из них? Попробовал. Баг образовался только в одной переменной Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
результат Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Данные движка Код: vbnet 1. 2. 3. 4.
сравнивал точно такую же версию движка на другом сервере, там все ок. Вероятно таки проблема с железом. Память протестирую при случае, так как это продакшн сервер, перезагружать проблематично. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 11:09 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoПопробовал. Баг образовался только в одной переменной Код: vbnet 1. 2. 3. 4.
не совсем корректный тест, так как если изменятся a и b одновременно, вы не увидите. Интересно было бы Код: vbnet 1.
serzuzeknoт.е. не множество раз в один момент.хм, это меняет дело. Я бы, конечно, грешил больше на вирус, чем на железо. Уверен, что такая большая частота возникновения подобной ошибки обязательно проявилась в других местах, сервер не смог бы работать нормально. Вирус моб бы закосячить конкретно движок скрипта, но... такие прикольные зловреды писали в 90-ых... сейчас никому не интересно. Интересно, это баг только на плавающей запятой, с целым числом не проявляется? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 11:16 |
|
баг с double
|
|||
---|---|---|---|
#18+
Действительно, опечатался, пардон. С if a > 3.0 результат разный Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
С целым числом баг не проявляется. С запятой проявляется, похоже, только при 1.0, 2.0 и 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 11:36 |
|
баг с double
|
|||
---|---|---|---|
#18+
не зря же тип Double называется :D Всем по x2 значения :) c Single такая же беда? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 11:43 |
|
баг с double
|
|||
---|---|---|---|
#18+
сервер какой версии и какой у вас проц стоит? неужели опять баг FDIV? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 12:00 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoтолько при 1.0, 2.0 и 4.0Что насчет 8.0, 16.0? serzuzeknoС целым числом баг не проявляетсяПроцессор отличается от всех остальных серверов? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 12:03 |
|
баг с double
|
|||
---|---|---|---|
#18+
Протестировал с 1 до 100 в цикле. На 74 итерации сервер умер, пришлось перегружать (вероятно ресурсы не освобождал) закономерность выявилась следующая Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
System Manufacturer VMware, Inc. Processor Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz, 2596 Mhz, 20 Core(s), 20 Logical Processor(s) OS Name Microsoft Windows Server 2008 R2 Enterprise Version 6.1.7601 Service Pack 1 Build 7601 На других серверах другая конфигурация. Похожих нет, но все виртуальные. Roman Mejtesне зря же тип Double называется :D Всем по x2 значения :) c Single такая же беда? С коллегами уже посмеялись по поводу задвоения дабл )Не представляю как проверить Single в скрипте. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 15:40 |
|
баг с double
|
|||
---|---|---|---|
#18+
Intel(R) Xeon(R) CPU E5-2690 v3 на других серверах другие стоят процы? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 16:02 |
|
баг с double
|
|||
---|---|---|---|
#18+
подключитесь отладчиком и посмотрите, что происходит, на простом примере ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 16:47 |
|
баг с double
|
|||
---|---|---|---|
#18+
Konst_One Intel(R) Xeon(R) CPU E5-2690 v3 на других серверах другие стоят процы? Семейство то же. Пример другого, где все ок Процессор Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz, 2394 МГц, ядер: 6, логических процессоров: 6 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 17:22 |
|
баг с double
|
|||
---|---|---|---|
#18+
может патча какого нет на той машине ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 17:23 |
|
баг с double
|
|||
---|---|---|---|
#18+
serzuzeknoНе представляю как проверить Single в скрипте.Функция CSng, она действительно преобразует число так, что появляется разница между Double и Single Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 20:27 |
|
|
start [/forum/topic.php?fid=60&msg=39681141&tid=2155031]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 416ms |
0 / 0 |