After switching to ovsqlite, I get the following error for one group anytime I
run expireover, whether targeting directly or from news.daily, the only output
is "can't expire fr.soc.politique":
$ echo fr.soc.politique | expireover -f - -Z tmp/lowmark
expireover: can't expire fr.soc.politique
Article lines processed 4119153
Articles dropped 0
Overview index dropped 0
Is there a way to get more output?
Hi Jesse,
After switching to ovsqlite, I get the following error for one group anytime I
run expireover, whether targeting directly or from news.daily, the only output
is "can't expire fr.soc.politique":
$ echo fr.soc.politique | expireover -f - -Z tmp/lowmark
expireover: can't expire fr.soc.politique
Article lines processed 4119153
Articles dropped 0
Overview index dropped 0
Is there a way to get more output?
There's unfortunately no more output to get, and I do not know why
you're facing that error only with one newsgroup.
Is there a matching rule in expire.ctl?
Nothing weird when you dump its overview?
ovsqlite-util -g -n fr.soc.politique
$ echo fr.soc.politique | expireover -f - -Z tmp/lowmark
expireover: can't expire fr.soc.politique
I don't need to expire this group, but found it odd that the error was produced from the daily expireover, but only for this one group.
I can dump the contents with ovsqlite-util and, while I didn't examine all 4+ million lines, everything looks normal.
Hi Jesse,
$ echo fr.soc.politique | expireover -f - -Z tmp/lowmark
expireover: can't expire fr.soc.politique
I don't need to expire this group, but found it odd that the error was
produced from the daily expireover, but only for this one group.
I can dump the contents with ovsqlite-util and, while I didn't examine all 4+
million lines, everything looks normal.
That's indeed very odd, either a bug or a corruption of some data.
This error appears when the expire_one() function in storage/ovsqlite/ovsqlite.c returns false.
If you wish and have a bit of time to investigate, is it possible to
rebuild INN with additional logs at each "return false"?
For instance, changing:
if (!write_request())
return false;
to:
if (!write_request()) {
syswarn("first write_request failed");
return false;
}
and so on...
There are 20 occurrences.
In the for loop, you may want to add the processed article number:
if (!unpack_now(response, &expires, sizeof expires)) {
syswarn("unpack_now expires failed for %lu", artnum);
return false;
}
Once the culprit is found, additional investigations will have to be
done, with again additional more precise logs, so it will take more time. Tell me if you want to.
Also, for the changes of the 20 occurrences, do you want to do that
yourself or should I send you the modified ovsqlite.c file to your
e-mail address?
expireover: can't expire fr.soc.politique
I'm always open to troubleshooting, if you can send the modified file so I don't accidentally muck it up, I would appreciate it.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 300 |
Nodes: | 16 (2 / 14) |
Uptime: | 65:44:57 |
Calls: | 6,712 |
Files: | 12,244 |
Messages: | 5,356,229 |