Падение nnCron на Win2K AS Rus SP4

Обсуждение программ nnCron и nnCron LITE

Падение nnCron на Win2K AS Rus SP4

Postby Raistlin » Wed, 24 Nov 2004, 17:30

Падаем с сообщением:
Code: Select all
Инcтpукция пo aдpecу "0x77fcc823" oбpaтилacь к пaмяти пo aдpecу "0x027acc88".
Пaмять нe мoжeт быть "read".
"OK" -- зaвepшeниe пpилoжeния

или
Code: Select all
Инcтpукция пo aдpecу "0x77fcc8e1" oбpaтилacь к пaмяти пo aдpecу "0x0225d0e8".
Пaмять нe мoжeт быть "written".
"OK" -- зaвepшeниe пpилoжeния

ВНИМАНИЕ! Для воспроизведения бага надо всё делать в точности — иначе может не получиться. Для примера см. ремарки в DrWebUpdate.tab — если последовать любой из них, nnCron падать перестаёт. Из дополнительного ПО надо поставить:
    плагины — (все, что есть на nncron.ru — см. nncron.ini);
    DrWeb в папку C:\Program Files\DrWeb;
    pkzipc.exe в папку, доступную в PATH.
Вот содержимое nncron.ini, кронтабов, файловых переменных.
nncron.ini:
Code: Select all
\ This file contains nnCron settings.
\ The keywords are described in nnCron documentation.
\ All keywords are case sensitive.
\ Don't forget to place a blank space after each keyword.
\ Restart nnCron after editing this file to apply your changes.

ShowErrorMsg ON
Crontab: "Common.tab"
Crontab: "DrWebUpdate.tab"
INCLUDE "plugins\crc32.spf"
TrayIconDoubleClick: reload-crontab
Editor: "default"
Language: Russian
Cronlog: "log\%MM%%DD%cron.log"
LogTimeFormat: "%hh%:%mm%:%ss% %ThreadId%"
YearField ON
CompleteTaskTimeout: 2000
QueryStartTimeout: 30
QueryStartAnswer: Yes
DefaultOpenMode: ShowNormal
DefaultPriority: NormalPriority
DefaultLogonType: LogonInteractive
SysTrayIcon ON
IconForAdminsOnly ON
MonitorResponseTime: 1000
BackupPath: "backup"
WatchWinCreateDelay: 100
WatchProcDelay: 1000
Console OFF
ItemExit OFF
ItemOptions OFF
ItemConsole OFF
ItemReload ON
ItemSuspend OFF
Guard OFF
DialOnce ON
RunAsDefaultUser OFF
DefaultUser: "xx"
DefaultPassword: ""
DefaultDomain: "zz"
DefaultLoadProfile OFF
GUIAsUser OFF
GUIUser: "xx"
GUIPassword: ""
GUIDomain: "zz"
GUILoadProfile ON
SyntaxRestriction OFF
HelpFile: "doc\help_ru.chm"
RemConsole ON
RemConsolePort: 2002
RemAllowed: 127.0.0.1
RemDisallowed: x.x.x.x
Log2StdOut OFF

: CRONTAB-ERROR 10 1 DO 100 I 100 * BEEP LOOP ;
: REMINDER-SOUND 500 500 BEEP ;
MenuHotKey: ""
INCLUDE "plugins\tools.spf"
INCLUDE "plugins\win2tray.spf"
INCLUDE "plugins\windows.spf"
INCLUDE "plugins\timesync.spf"
INCLUDE "plugins\wakeup.spf"
INCLUDE "plugins\time.spf"
INCLUDE "plugins\system.spf"
INCLUDE "plugins\ras.spf"
INCLUDE "plugins\http.spf"
INCLUDE "plugins\procwin.spf"
INCLUDE "plugins\winlirc.spf"
INCLUDE "plugins\process.spf"
DefaultRunMissedTime: 15
ReloadImmediately ON
TrayIconRightButton: menu
PerfMonitor OFF
TrayIconBalloonClick: NOOP

Common.tab:
Code: Select all
SET DrWebFolder=C:\Program Files\DrWeb
SET DFSRoot=\\CHESMAIMPERIAL\Public\
SET SystemFolder=%DFSRoot%System\
SET MiscFolder=%DFSRoot%Misc\nnCron\
SET UpdateInProgress="%MiscFolder%UpdateInProgress"
SET CmdPif=%SystemFolder%\CloseWhenComplete.pif /C

DrWebUpdate.tab:
Code: Select all
# Переменные закомментированы, т. к. повторяются в Common.tab
# если удалить любую незакомментированную переменную - не падает
SET Host=download.drweb.com
SET ParentURL=http://%Host%/files/bases/
# SET DrWebFolder=C:\Program Files\DrWeb
SET HotUpdateFileName=drwtoday
SET HotUpdateZipFile=%HotUpdateFileName%.zip
SET HotUpdateZipFilePath=%Temp%\%HotUpdateZipFile%
SET HotUpdateLink=%ParentURL%%HotUpdateZipFile%
SET HotUpdateVdbFile=%HotUpdateFileName%.vdb
SET HotUpdateVdbFileTempPath=%Temp%\%HotUpdateVdbFile%
SET ZipCommandLine=pkzipc.exe -Ext -Dir=Specify -Over=All -NoFix -NoZipExt
SET VDBUpdatesPackage=C:\Archives\Dr.Web\Дополнительно.rar
SET Rar=Rar.exe
# SET DFSRoot=\\CHESMAIMPERIAL\Public\
SET NetworkUpdatesFolder=%DFSRoot%Software\Dr.Web\_Installed
SET NetworkFlagFolder=%DFSRoot%Misc\nnCron\PCLists\DrWebVDBOnly\
SET FlagFolder=var\
SET HostNotAvailable="%FlagFolder%HostNotAvailable"
SET NewDrWebVersionAvailable="%FlagFolder%NewDrWebVersionAvailable"
SET VDBPackageUpdateRequired="%FlagFolder%VDBPackageUpdateRequired"

#( Update_DrWeb_From_Internet
   SingleInstance
   VARIABLE WeekUpdateNotAvailable
   fVAR LastWeekUpdateTime
   fVAR NextWeekUpdateNumber
   fVAR WeekUpdateCheckRequired
   fVAR HotUpdateZipFileCRC
   Action:
         FOR-FILES: "%Temp%\*.vdb"
           FOUND-FULLPATH DELETE-FILE IF THEN
       ;FOR-FILES
         FOR-FILES: "%Temp%\drw*.zip"
           FOUND-FULLPATH DELETE-FILE IF THEN
       ;FOR-FILES
\ если заменить HotUpdateLink и HotUpdateZipFilePath на реальные значения - не падает
            HTTP-GET: "%HotUpdateLink%" 0= IF
               S" HotUpdateZipFilePath" ENV FWRITE
            ELSE
               2DROP
            THEN
            HTTP-RESULT 200 =
            GetLastError NOT
            AND IF
               S" HotUpdateZipFilePath" ENV GET-CRC32 2DUP HotUpdateZipFileCRC COMPARE IF
                  TO HotUpdateZipFileCRC
\ если убрать условие (2 строки выше и ELSE 2DROP THEN), то не падает
                  SWHide START-APPW: %ZipCommandLine% %HotUpdateZipFilePath% %HotUpdateVdbFile% %Temp%
               ELSE
                  2DROP
               THEN
\ если убрать след. строку, то не падает
               FILE-DELETE: "%HotUpdateZipFilePath%"
            THEN
            WeekUpdateNotAvailable OFF
            BEGIN
\ если убрать любое из условий - не падает
            FT-CUR LastWeekUpdateTime S>DOUBLE FT- FT>DAY 6 >
            WeekUpdateCheckRequired S>NUM 0 >
            OR
            WeekUpdateNotAvailable @ NOT
            AND WHILE
               WeekUpdateNotAvailable OFF
\ если убрать закачку, то не падает
               S" http://download.drweb.com/files/bases/drw43215.zip" HTTP-GET 0= IF
                  S" Temp" ENV S" \drw43215.zip" S+ FWRITE
               ELSE
                  2DROP
               THEN
               HTTP-RESULT 200 =
               GetLastError NOT
               AND IF
\ если в след. строке убрать %HotUpdateVdbFile%, то не падает
                  SWHide START-APPW: %ZipCommandLine% %Temp%\drw43215.zip* drw43215.vdb %HotUpdateVdbFile% "%DrWebFolder%"
\ если убрать след. строку или (ELSE + строку после ELSE), то не падает
                  NextWeekUpdateNumber S>NUM 1 + N>S TO NextWeekUpdateNumber
               ELSE
                  WeekUpdateNotAvailable ON
               THEN
            REPEAT
)#

var\DrWebVersion:
Code: Select all
432

var\HotUpdateZipFileCRC
Code: Select all
fa9d936f

var\LastWeekUpdateTime
Code: Select all
127449394260000000

var\NextWeekUpdateNumber
Code: Select all
15

var\WeekUpdateCheckRequired
Code: Select all
1

Для воспроизведения бага надо иметь доступ в Интернет — иначе не скачать обновление для DrWeb. Под WinXP SP2 не падает!
Большая просьба (в первую очередь к разработчикам, но также и к простым гражданам) — попробуйте на своих системах и сообщите, воспроизвелось или нет. Если нету pkzipc, могу выслать. Обратите внимание — в логе должно быть сообщение о распаковке drw43215.zip, иначе задача не выполнилась и, скорее всего, nnCron при этом не упадёт.
Проверено как на "живой" системе (Win2K WS Rus SP4), так и на чистой под VMWare (со всеми security updates на сегодняшний день).
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron