Hi Micah,

I appreciate your response.  It has been driving me nuts since it started
about a week ago.  Things had been humming along nicely for over a year
until ~22 Feb.

So, as best I can tell at this point, the mirror does not have a
bytecode.cvd to serve up (0 length or otherwise).  Here is a listing of
/var/lib/clamav on the mirror.

koconnor@ampion-clamav-mirror:~$ ls -l /var/lib/clamav
total 226196
-rw-r--r-- 1 clamav clamav    314802 Feb 22 22:02 bytecode.cld
-rw-r--r-- 1 clamav clamav  60814501 Mar  1 09:07 daily.cld
-rw-r--r-- 1 clamav clamav        69 Jan 29  2022 freshclam.dat
-rw-r--r-- 1 clamav clamav 170479789 Jan 29  2022 main.cvd
-rw-r--r-- 1 clamav clamav        87 Jan 29  2022 test.html


This is the version of freshclam on the mirror:

koconnor@ampion-clamav-mirror:~$ freshclam -V
ClamAV 0.103.8/26827/Wed Mar  1 08:28:49 2023


And the freshclam.conf on the mirror too.

koconnor@ampion-clamav-mirror:~$ cat /etc/clamav/freshclam.conf
# Automatically created by the clamav-freshclam postinst
# Comments will get lost when you reconfigure the clamav-freshclam package

DatabaseOwner clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose false
LogSyslog false
LogFacility LOG_LOCAL6
LogFileMaxSize 0
LogRotate true
LogTime true
Foreground false
Debug false
MaxAttempts 5
DatabaseDirectory /var/lib/clamav
DNSDatabaseInfo current.cvd.clamav.net
ConnectTimeout 30
ReceiveTimeout 0
TestDatabases yes
ScriptedUpdates yes
CompressLocalDatabase yes
Bytecode true
NotifyClamd /etc/clamav/clamd.conf
# Check for new database 24 times a day
Checks 24
DatabaseMirror db.local.clamav.net
DatabaseMirror database.clamav.net


I did find something interesting in the logs on the mirror server.  First a
listing of the log directory:

koconnor@ampion-clamav-mirror:~$ ls -l /var/log/clamav/*
-rw-r----- 1 clamav clamav  57381 Mar  1 13:07 /var/log/clamav/freshclam.log
-rw-r----- 1 clamav adm    142086 Feb 26 00:00
/var/log/clamav/freshclam.log.1
-rw-r----- 1 clamav clamav   5142 Dec 25 00:00
/var/log/clamav/freshclam.log.10.gz
-rw-r----- 1 clamav adm      5002 Dec 18 00:00
/var/log/clamav/freshclam.log.11.gz
-rw-r----- 1 clamav adm      5008 Dec 11 00:00
/var/log/clamav/freshclam.log.12.gz
-rw-r----- 1 clamav adm      6158 Feb 19 00:00
/var/log/clamav/freshclam.log.2.gz
-rw-r----- 1 clamav adm      4997 Feb 12 00:00
/var/log/clamav/freshclam.log.3.gz
-rw-r----- 1 clamav clamav   5148 Feb  5 00:00
/var/log/clamav/freshclam.log.4.gz
-rw-r----- 1 clamav adm      5023 Jan 29 00:00
/var/log/clamav/freshclam.log.5.gz
-rw-r----- 1 clamav adm      5008 Jan 22 00:00
/var/log/clamav/freshclam.log.6.gz
-rw-r----- 1 clamav adm      4990 Jan 15 00:00
/var/log/clamav/freshclam.log.7.gz
-rw-r----- 1 clamav adm      5009 Jan  8 00:00
/var/log/clamav/freshclam.log.8.gz
-rw-r----- 1 clamav clamav   5174 Jan  1 00:00
/var/log/clamav/freshclam.log.9.gz


Then a search for bytecode.cvd in the most recent log file:

koconnor@ampion-clamav-mirror:~$ sudo grep bytecode.cvd
/var/log/clamav/freshclam.log
koconnor@ampion-clamav-mirror:~$


Followed by a search for that string in the next most recent file:

koconnor@ampion-clamav-mirror:~$ sudo grep bytecode.cvd
/var/log/clamav/freshclam.log.1
Sun Feb 19 00:00:35 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Sun Feb 19 01:00:35 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Sun Feb 19 02:00:35 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Sun Feb 19 03:00:35 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)

<snip> this is repeated every hour <snip>
Wed Feb 22 18:02:30 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Wed Feb 22 19:02:31 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Wed Feb 22 20:02:31 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
Wed Feb 22 21:02:31 2023 -> bytecode.cvd database is up-to-date (version:
333, sigs: 92, f-level: 63, builder: awillia2)
koconnor@ampion-clamav-mirror:~$


This is particularly interesting as the end of that output is approximately
the time when the problem started.  Let me know if I should send you a copy
of any of the log files from the mirror.  I wasn't sure if that was
appropriate for the listserv.

Thanks again

Kevin

On Tue, Feb 28, 2023 at 1:31 PM Micah Snyder (micasnyd) <micas...@cisco.com>
wrote:

> The bytecode.cvd​ file is the original.
> When there is an update, we publish two things:
>
>    1. a bytecode.cdiff​ patch file that will update the older bytecode.cvd​
>    to the newest version.  This is the "scripted update" mechanism.
>
>    If using the .cdiff​ patch file to update, it should replace the old
>    bytecode.cvd​ with a new bytecode.cld​.  We may issue an empty patch
>    file (zero-bytes) to tell freshclam​ to download the whole bytecode.cvd​
>    instead. We do this if the patch is so big it is better to just download
>    the whole file, or if is a bug preventing the patch file from working
>    correctly, which there presently is for bytecode signatures (sad!).
>
>    This .cdiff​ update mechanism would not be used in your situation
>    because ScriptedUpdates is disabled.
>
>    2. a new bytecode.cvd​.
>
>    This should only be downloaded in two cases: A) If you do not have the
>    old bytecode.cvd​ (or cld​) and thus cannot use the patch file to
>    update.  And B) If the bytecode.cdiff​ patch file is empty.
>
> The issue you're facing feels to me like an issue with what the private
> mirror is serving. Can you please check if it is serving an empty
> bytecode.cvd​?  It feels like it may be serving both the empty
> bytecode.cvd​ and a bytecode.cld​.
>
> If that's not the case, then we may have a bug in freshclam​ and I would
> love some more information on what freshclam​ is downloading when it runs
> in order to get into this strange state.
>
> Best,
> Micah
>
> Micah Snyder
> ClamAV Development
> Talos
> Cisco Systems, Inc.
>
> ------------------------------
> *From:* clamav-users <clamav-users-boun...@lists.clamav.net> on behalf of
> Kevin O'Connor via clamav-users <clamav-users@lists.clamav.net>
> *Sent:* Monday, February 27, 2023 11:12 AM
> *To:* ClamAV users ML <clamav-users@lists.clamav.net>
> *Cc:* Kevin O'Connor <kocon...@ampion.net>
> *Subject:* Re: [clamav-users] 0 length bytecode.cvd causing problems with
> clamav daemon
>
> Marc,
>
> I had a similar understanding of that document.  That is; if there is no
> bytecode.cvd pushed by the ClamAV team, it should not exist on my local
> scanners. When I checked the mirror and there was no bytecode.cvd file, yet
> it appeared on my scanner machines with 0 length, I figured that the new
> release had highlighted a misconfiguration in my freshclam.conf that the
> earlier version was more forgiving of.  However I have not found what that
> might be.
>
> Your idea of removing all the files in the /var/lib/clamav directory is
> what I found worked initially, but that seems like a poor workaround as I
> need this running all the time.  I don't know when our clients will drop
> files on us that need a scan.
>
> Thanks for looking at it.
>
> Kevin
>
> On Mon, Feb 27, 2023 at 1:11 PM Marc via clamav-users <
> clamav-users@lists.clamav.net> wrote:
>
> i would suggest, to delete alle libraries in /var/lib/clamav and download
> all complete new.
> CLD Files comes not regularly, normally we have CVD only.
>
> If i understand this well, CLD Files comes only when error occures while
> updating.
> https://blog.clamav.net/2021/03/clamav-cvds-cdiffs-and-magic-behind.html
> <https://blog.clamav.net/2021/03/clamav-cvds-cdiffs-and-magic-behind.html>
>
>
> Von / From: Kevin O'connor <mailto:kocon...@ampion.net>
> An / To: Newcomer01 <mailto:newcome...@posteo.de>
> Gesendet / Sent: Montag, Februar 27, 2023 um 18:38 (at 06:38 PM) +0100
> Betreff / Subject: Re: [clamav-users] 0 length bytecode.cvd causing
> problems with clamav daemon
> > Heh, good question.  Just checked again, and it looks like that was a
> copy-paste error.  There is only one PrivateMirror line.
> > Kevin
> >
> > On Mon, Feb 27, 2023 at 12:02 PM newcomer01 via clamav-users <
> clamav-users@lists.clamav.net> wrote:
> >
> > why you have set two times the "PrivateMirror" with identically IP's?
> > Can't believe that this happens with the automated PostInst 😉
> >
> >
> > Von / From: Clamav User Mailinglist <mailto:
> clamav-users@lists.clamav.net>
> > An / To: Newcomer01 <mailto:newcome...@posteo.de>
> > CC / CC: Kevin O'connor <mailto:kocon...@ampion.net>
> > Gesendet / Sent: Montag, Februar 27, 2023 um 16:58 (at 04:58 PM) +0100
> > Betreff / Subject: [clamav-users] 0 length bytecode.cvd causing problems
> with clamav daemon
> > > I am having an issue with 0 length bytecode.cvd files on my scanner
> instances.  This seems to have started sometime on 22 Feb, I'm afraid I
> don't have an exact time. The clamav daemon produces logs like the
> following:
> > >
> > > Feb 27 14:39:11 av-scan-wrhn clamd[163614]: LibClamAV Error:
> cli_cvdverify: Can't read CVD header
> > > Feb 27 14:39:11 av-scan-wrhn clamd[163614]: LibClamAV Error: Can't
> load /var/lib/clamav/bytecode.cld: Broken or not a CVD file
> > > Feb 27 14:39:11 av-scan-wrhn clamd[163614]: LibClamAV Error:
> cli_loaddbdir(): error loading database /var/lib/clamav/bytecode.cld
> > > Feb 27 14:39:11 av-scan-wrhn clamd[163614]: Mon Feb 27 14:39:11 2023
> -> !Broken or not a CVD file
> > > Feb 27 14:39:11 av-scan-wrhn systemd[1]: clamav-daemon.service: Main
> process exited, code=exited, status=1/FAILURE
> > > Feb 27 14:39:11 av-scan-wrhn systemd[1]: clamav-daemon.service: Failed
> with result 'exit-code'.
> > > Feb 27 14:39:11 av-scan-wrhn systemd[1]: clamav-daemon.service:
> Consumed 8.679s CPU time.
> > >
> > >
> > > I feel like I have narrowed the problem down to a 0 length
> 'bytecode.cvd' file.  Here is a listing of the definitions directory:
> > >
> > > $ ls -l /var/lib/clamav
> > > total 226168
> > > -rw-r--r-- 1 clamav clamav    314802 Feb 27 14:06 bytecode.cld
> > > -rw-r--r-- 1 clamav clamav         0 Feb 27 02:00 bytecode.cvd
> > > -rw-r--r-- 1 clamav clamav  60787973 Feb 27 10:01 daily.cld
> > > -rw-r--r-- 1 clamav clamav        69 Feb 23 15:33 freshclam.dat
> > > -rw-r--r-- 1 clamav clamav 170479789 Feb 27 02:00 main.cvd
> > >
> > >
> > > My initial fix (before narrowing the problem down to bytecode.cvd) was
> to
> > >
> > > 1. stop freshclam
> > > 2. clean this directory
> > > 3. restart freshclam
> > > 4. give it time to get the definitions (from a private mirror)
> > > 5. start clamav daemon
> > >
> > > This would work for maybe 1/2 day then the empty bytecode.cvd file
> would reappear and the daemon would fail.
> > >
> > > This morning I was able to spend some more time and find that it was
> just the one file that needed to be removed.
> > >
> > > I have a local mirror because there are several instances of this
> scanner in use (at least 2 instances for several environments).  I have
> checked the mirror and it appears to be working fine and keeping the
> definitions up to date inside our environment.  In addition, the scanner
> instances appear to be keeping the local set of definitions up to date with
> the mirror.
> > >
> > > The mirror does not have a bytecode.cvd file on it (here is a listing
> of its definitions directory)
> > >
> > > $ ls -l /var/lib/clamav
> > > total 226172
> > > -rw-r--r-- 1 clamav clamav    314802 Feb 22 22:02 bytecode.cld
> > > -rw-r--r-- 1 clamav clamav  60787973 Feb 27 09:06 daily.cld
> > > -rw-r--r-- 1 clamav clamav        69 Jan 29  2022 freshclam.dat
> > > -rw-r--r-- 1 clamav clamav 170479789 Jan 29  2022 main.cvd
> > > -rw-r--r-- 1 clamav clamav        87 Jan 29  2022 test.html
> > >
> > >
> > > To the best of my knowledge, the software is up to date:
> > >
> > > $ sudo freshclam -V
> > > ClamAV 0.103.8/26825/Mon Feb 27 08:24:38 2023
> > >
> > >
> > > Here is the freshclam.conf used on all the local sanner instances
> > >
> > > $ cat /etc/clamav/freshclam.conf
> > > # Automatically created by the clamav-freshclam postinst
> > > # Comments will get lost when you reconfigure the clamav-freshclam
> package
> > >
> > > DatabaseOwner clamav
> > > UpdateLogFile /var/log/clamav/freshclam.log
> > > LogVerbose false
> > > LogSyslog false
> > > LogFacility LOG_LOCAL6
> > > LogFileMaxSize 0
> > > LogRotate true
> > > LogTime true
> > > Foreground false
> > > Debug false
> > > MaxAttempts 5
> > > DatabaseDirectory /var/lib/clamav
> > > DNSDatabaseInfo current.cvd.clamav.net
> <http://current.cvd.clamav.net>
> <http://current.cvd.clamav.net
> <http://current.cvd.clamav.net>>
> <http://current.cvd.clamav.net
> <http://current.cvd.clamav.net>
> >
> > > ConnectTimeout 30
> > > ReceiveTimeout 0
> > > TestDatabases yes
> > > CompressLocalDatabase no
> > > Bytecode true
> > > NotifyClamd /etc/clamav/clamd.conf
> > > # Check for new database 24 times a day
> > > Checks 24
> > > PrivateMirror http://10.50.0.2
> <http://10.50.0.2>
> > > ScriptedUpdates no
> > > PrivateMirror http://10.50.0.2
> <http://10.50.0.2>
> > >
> > >
> > > The scanner has been working fine for about 12 months, keeping the
> software and the definitions up to date.   The only configuration item that
> seems to relate is "Bytecode true", but the description seems to discuss
> just the downloading of the file, not whether it is created on the local
> instance.
> > >
> > > Does anyone have any pointers?
> > >
> > > Thanks
> > > Kevin
> > > --
> > >
> > > *Kevin O'Connor*
> > > Principal DevOps Engineer
> > > M: 617-834-1291
> > >
> > > email-footer-logos.jpg (1000×120)
> > >
> > > STATEMENT OF CONFIDENTIALITY: The information contained in this
> message and any attachments are intended solely for the addressee(s) and
> may contain confidential or privileged information. If you are not the
> intended recipient, or responsible for delivering the e-mail to the
> intended recipient, you have received this message in error. Any use,
> dissemination, forwarding, printing, or copying is strictly prohibited.
> Please notify Ampion immediately at secur...@ampion.net and destroy all
> copies of this message and any attachments.
> > >
> > >
> > > _______________________________________________
> > >
> > > Manage your clamav-users mailing list subscription / unsubscribe:
> > > https://lists.clamav.net/mailman/listinfo/clamav-users
> <https://lists.clamav.net/mailman/listinfo/clamav-users>
> > >
> > >
> > > Help us build a comprehensive ClamAV guide:
> > > https://github.com/Cisco-Talos/clamav-documentation
> <https://github.com/Cisco-Talos/clamav-documentation>
> > >
> > > https://docs.clamav.net/#mailing-lists-and-chat
> <https://docs.clamav.net/#mailing-lists-and-chat>
> >
> > _______________________________________________
> >
> > Manage your clamav-users mailing list subscription / unsubscribe:
> > https://lists.clamav.net/mailman/listinfo/clamav-users
> <https://lists.clamav.net/mailman/listinfo/clamav-users>
> >
> >
> > Help us build a comprehensive ClamAV guide:
> > https://github.com/Cisco-Talos/clamav-documentation
> <https://github.com/Cisco-Talos/clamav-documentation>
> >
> > https://docs.clamav.net/#mailing-lists-and-chat
> <https://docs.clamav.net/#mailing-lists-and-chat>
> >
>
> _______________________________________________
>
> Manage your clamav-users mailing list subscription / unsubscribe:
> https://lists.clamav.net/mailman/listinfo/clamav-users
> <https://lists.clamav.net/mailman/listinfo/clamav-users>
>
>
> Help us build a comprehensive ClamAV guide:
> https://github.com/Cisco-Talos/clamav-documentation
> <https://github.com/Cisco-Talos/clamav-documentation>
>
> https://docs.clamav.net/#mailing-lists-and-chat
> <https://docs.clamav.net/#mailing-lists-and-chat>
>
>
_______________________________________________

Manage your clamav-users mailing list subscription / unsubscribe:
https://lists.clamav.net/mailman/listinfo/clamav-users


Help us build a comprehensive ClamAV guide:
https://github.com/Cisco-Talos/clamav-documentation

https://docs.clamav.net/#mailing-lists-and-chat

Reply via email to