בקשת מידע | באגים בגרסה 0.9.96? כאן המקום לדווח!
-
@חנניה מתקדמים! העובדה שקיים קובץ
seforim.db-walליד ספרייה של 8GB היא בדיוק מה שחיפשנו — ייתכן שקובץ הספרייה נשאר מהמעבר בין הגרסאות במצב שמאלץ את התוכנה לעשות עבודת תיקון בכל עלייה.בדיקה אחת קטנה שתכריע (מעתיקים את כל השורה ל-cmd, התוכנה סגורה):
powershell -Command "$b=[IO.File]::OpenRead((Join-Path $env:APPDATA 'otzaria\books\seforim.db')); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()"יודפסו שני מספרים — כתוב כאן מה יצא (למשל
1 1או2 2).ובנוסף, אם עוד לא הספקת — הבדיקה השנייה מהתגובה הקודמת: בזמן ההמתנה של הדקה-שתיים, האם Antimalware Service Executable במנהל המשימות נמצא למעלה עם מעבד/דיסק גבוהים?
ובנוסף, אם עוד לא הספקת — הבדיקה השנייה מהתגובה הקודמת: בזמן ההמתנה של הדקה-שתיים, האם Antimalware Service Executable במנהל המשימות נמצא למעלה עם מעבד/דיסק גבוהים?
לא
C:\Users\USER>powershell -Command "$b=[IO.File]::OpenRead((Join-Path $env:APPDATA 'otzaria\books\seforim.db')); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()" Exception calling "OpenRead" with "1" argument(s): "Could not find a part of the path 'C:\Users\USER\AppData\Roaming\otzaria\books\seforim.db'." At line:1 char:1 + $b=[IO.File]::OpenRead((Join-Path $env:APPDATA 'otzaria\books\seforim ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DirectoryNotFoundException The property 'Position' cannot be found on this object. Verify that the property exists and can be set. At line:1 char:78 + ... ath $env:APPDATA 'otzaria\books\seforim.db')); $b.Position=18; '{0} { ... + ~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound You cannot call a method on a null-valued expression. At line:1 char:94 + ... )); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Clo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull You cannot call a method on a null-valued expression. At line:1 char:137 + ... $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close() + ~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull -
ובנוסף, אם עוד לא הספקת — הבדיקה השנייה מהתגובה הקודמת: בזמן ההמתנה של הדקה-שתיים, האם Antimalware Service Executable במנהל המשימות נמצא למעלה עם מעבד/דיסק גבוהים?
לא
C:\Users\USER>powershell -Command "$b=[IO.File]::OpenRead((Join-Path $env:APPDATA 'otzaria\books\seforim.db')); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()" Exception calling "OpenRead" with "1" argument(s): "Could not find a part of the path 'C:\Users\USER\AppData\Roaming\otzaria\books\seforim.db'." At line:1 char:1 + $b=[IO.File]::OpenRead((Join-Path $env:APPDATA 'otzaria\books\seforim ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DirectoryNotFoundException The property 'Position' cannot be found on this object. Verify that the property exists and can be set. At line:1 char:78 + ... ath $env:APPDATA 'otzaria\books\seforim.db')); $b.Position=18; '{0} { ... + ~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound You cannot call a method on a null-valued expression. At line:1 char:94 + ... )); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Clo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull You cannot call a method on a null-valued expression. At line:1 char:137 + ... $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close() + ~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull@חנניה זה ממצא חשוב דווקא: הפקודה חיפשה את הספרייה במיקום ברירת המחדל (
C:\Users\USER\AppData\Roaming\otzaria\books) — והיא לא שם. כלומר הספרייה שלך מותקנת במיקום מותאם אישית.שתי שאלות קצרות:
-
פתח שוב את התיקייה שבה מצאת קודם את
seforim.db, לחץ על שורת הכתובת של סייר הקבצים, והעתק לכאן את הנתיב המלא (למשלD:\otzaria\books). -
באיזה כונן זה יושב — אותו כונן של Windows (בדרך כלל C), או כונן/דיסק אחר? ואם אחר — האם הוא דיסק פנימי, חיצוני (USB), או כרטיס זיכרון?
אם הספרייה יושבת על דיסק מכני או חיצוני איטי — זה לבדו מסביר דקה-שתיים מול קובץ של 8GB, ואז הפתרון פשוט: העברת מיקום הספרייה (יש לזה כפתור בהגדרות) לכונן המהיר.
-
-
"C:\ProgramData\otzaria\books\seforim.db"לא שאכפת לי'
לי בכ"מ ה רק עוזר, מקוה שלא מספים פה את העסק.. -
"C:\ProgramData\otzaria\books\seforim.db"לא שאכפת לי'
לי בכ"מ ה רק עוזר, מקוה שלא מספים פה את העסק..@חנניה תודה — זו התקנת "לכל המשתמשים" (הספרייה ב-ProgramData), ויש לנו חשד ממוקד: ייתכן שקובץ הספרייה נשאר מהמעבר בין הגרסאות במצב שדורש תיקון-בכתיבה בכל עלייה, ובתיקייה הזו אין למשתמש רגיל הרשאת כתיבה — אז התיקון נכשל בשקט וחוזר בכל פתיחה.
שתי פקודות אחרונות (מעתיקים כל שורה ל-cmd, התוכנה סגורה) — כתוב מה יצא מכל אחת:
powershell -Command "$b=[IO.File]::OpenRead('C:\ProgramData\otzaria\books\seforim.db'); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()"powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db*' | Select Name,Length"הראשונה תדפיס שני מספרים (למשל
1 1או2 2), השנייה תציג את קובצי הספרייה וגדליהם. -
C:\Users\USER>powershell -Command "$b=[IO.File]::OpenRead('C:\ProgramData\otzaria\books\seforim.db'); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()" 1 1 C:\Users\USER>powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db*' | Select Name,Length" Name Length ---- ------ seforim.db 7954743296 seforim.db.new-shm 32768 seforim.db.new-wal 0 -
C:\Users\USER>powershell -Command "$b=[IO.File]::OpenRead('C:\ProgramData\otzaria\books\seforim.db'); $b.Position=18; '{0} {1}' -f $b.ReadByte(), $b.ReadByte(); $b.Close()" 1 1 C:\Users\USER>powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db*' | Select Name,Length" Name Length ---- ------ seforim.db 7954743296 seforim.db.new-shm 32768 seforim.db.new-wal 0@חנניה מצוין — עכשיו כמעט בטוח שמצאנו את זה. שני הקבצים
seforim.db.new-walו-seforim.db.new-shmהם שאריות של עדכון ספרייה שנקטע באמצע. כשעדכון נקטע, התוכנה מוצאת בכל עלייה קובץ סימון, ומריצה בדיקת תקינות על כל 8 הג'יגה — שזו בדיוק הדקה-שתיים שלך. הבדיקה עוברת, התוכנה מנסה למחוק את הסימון — אבל בתיקיית ProgramData אין לה הרשאה, המחיקה נכשלת בשקט, ובעלייה הבאה הכל חוזר.אימות אחרון + פתרון באותה הודעה:
1. אימות — הרץ ב-cmd:
powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db.*' -Force | Select Name,Length"אם מופיע שם קובץ
seforim.db.applying— זה האשם.2. הפתרון (רק אם הקובץ הופיע): פתח שורת פקודה כמנהל (התחל ← הקלד cmd ← קליק ימני ← הפעל כמנהל) והרץ:
del "C:\ProgramData\otzaria\books\seforim.db.applying"זו מחיקה בטוחה לגמרי — זה בדיוק מה שהתוכנה עצמה מנסה (ולא מצליחה) לעשות אחרי שהספרייה כבר עברה את בדיקת התקינות עשרות פעמים. אחרי המחיקה פתח את אוצריא — היא אמורה לעלות תוך שניות.
ובצד שלנו נתקן שזה לא יוכל לקרות יותר לאף אחד.
-
C:\Windows\system32>powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db.*' -Force | Select Name,Length" Name Length ---- ------ seforim.db.new-shm 32768 seforim.db.new-wal 0 C:\Windows\system32> -
C:\Windows\system32>powershell -Command "Get-Item 'C:\ProgramData\otzaria\books\seforim.db.*' -Force | Select Name,Length" Name Length ---- ------ seforim.db.new-shm 32768 seforim.db.new-wal 0 C:\Windows\system32>@חנניה טוב שבדקנו — הקובץ החשוד לא קיים, אז אין צורך למחוק כלום. נשארה אפשרות אחת עיקרית שמסבירה את כל הממצאים יחד (גם ההאטה הכללית בפתיחת תהליכים וגם ההמתנה הארוכה): תוכנת סינון תוכן מקומית שמותקנת על המחשב עצמו ובודקת כל קובץ שנקרא — ובכל עלייה היא בודקת מחדש את קובץ הספרייה של 8 ג'יגה.
שתי בדיקות אחרונות:
1. מדידת מהירות קריאה של קובץ הספרייה (מעתיקים את כל השורה ל-cmd):
powershell -Command "$sw=[Diagnostics.Stopwatch]::StartNew(); $fs=[IO.File]::OpenRead('C:\ProgramData\otzaria\books\seforim.db'); $buf=New-Object byte[] 1048576; $read=0; while($read -lt 500 -and ($fs.Read($buf,0,1048576)) -gt 0){$read++}; $fs.Close(); $sw.Stop(); 'MB/s: ' + [math]::Round(500/$sw.Elapsed.TotalSeconds)"כתוב מה יצא (MB/s). על SSD תקין אמור לצאת מאות עד אלפים; אם יוצא מספר דו-ספרתי — מצאנו.
2. האם מותקנת על המחשב עצמו תוכנת סינון כלשהי — נטספארק, JNET, אתרוג, נקי, שומר, קליק וכד'? (לא הסינון של ספק האינטרנט — תוכנה שמותקנת במחשב.) אפשר לבדוק ב"הוספה או הסרה של תוכניות".
-
שיח מרתק איזה תקשורת
-
@חנניה טוב שבדקנו — הקובץ החשוד לא קיים, אז אין צורך למחוק כלום. נשארה אפשרות אחת עיקרית שמסבירה את כל הממצאים יחד (גם ההאטה הכללית בפתיחת תהליכים וגם ההמתנה הארוכה): תוכנת סינון תוכן מקומית שמותקנת על המחשב עצמו ובודקת כל קובץ שנקרא — ובכל עלייה היא בודקת מחדש את קובץ הספרייה של 8 ג'יגה.
שתי בדיקות אחרונות:
1. מדידת מהירות קריאה של קובץ הספרייה (מעתיקים את כל השורה ל-cmd):
powershell -Command "$sw=[Diagnostics.Stopwatch]::StartNew(); $fs=[IO.File]::OpenRead('C:\ProgramData\otzaria\books\seforim.db'); $buf=New-Object byte[] 1048576; $read=0; while($read -lt 500 -and ($fs.Read($buf,0,1048576)) -gt 0){$read++}; $fs.Close(); $sw.Stop(); 'MB/s: ' + [math]::Round(500/$sw.Elapsed.TotalSeconds)"כתוב מה יצא (MB/s). על SSD תקין אמור לצאת מאות עד אלפים; אם יוצא מספר דו-ספרתי — מצאנו.
2. האם מותקנת על המחשב עצמו תוכנת סינון כלשהי — נטספארק, JNET, אתרוג, נקי, שומר, קליק וכד'? (לא הסינון של ספק האינטרנט — תוכנה שמותקנת במחשב.) אפשר לבדוק ב"הוספה או הסרה של תוכניות".
@Otzaria-Bot MB/s: 368
-
למה אתה הורס זה מעניין
-
למה אתה הורס זה מעניין
@רוצה-לגדול חבל על הטוקונים..
-
מזה?
-
מזה?
@רוצה-לגדול יש מגבלת שימוש בAI שמוגבלת למספר מסויים של טוקנים (אתה יכול לשאול בבינה טופ מסתמא יש שם כבר מי שפישט את זה ל"עמך"
) -
@Otzaria-Bot MB/s: 368
@otzaria-bot ניסיתי לעדכן לקדם והבאג נשאר
אין איזה סקריפט אחד שפשוט יבדוק מה זה -
@חנניה נסגרה כעת בעיה בגיטהאב המקושרת לפוסט זה. לפרטים נוספים: https://github.com/Otzaria/otzaria/issues/989
-
רציתי לבקש אם אפשר להוסיף קיצור דרך להגדלת הקובץ PDF
וכן למעבר בין חלוניות...
עריכה- הייתי מציע שיהיה בכלל רשימה של כל המקשים בתוכנה, ושכל אחד יוכל להגדיר קיצור דרך על כל מקש שיבחר...
תודה רבה...
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות