nutch-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (Jira)" <>
Subject [jira] [Commented] (NUTCH-2748) Fetch status gone (redirect exceeded) not to overwrite existing items in CrawlDb
Date Mon, 02 Dec 2019 13:21:00 GMT


Hudson commented on NUTCH-2748:

SUCCESS: Integrated in Jenkins build Nutch-trunk #3656 (See [])
NUTCH-2748 Fetch status gone (redirect exceeded) not to overwrite (snagel: [])
* (edit) src/java/org/apache/nutch/fetcher/
* (edit) conf/nutch-default.xml

> Fetch status gone (redirect exceeded) not to overwrite existing items in CrawlDb
> --------------------------------------------------------------------------------
>                 Key: NUTCH-2748
>                 URL:
>             Project: Nutch
>          Issue Type: Bug
>          Components: crawldb, fetcher
>    Affects Versions: 1.16
>            Reporter: Sebastian Nagel
>            Priority: Major
>             Fix For: 1.17
>         Attachments:
> If fetcher is following redirects and the max. number of redirects in a redirect chain
(http.max.redirect) is reached, fetcher stores a CrawlDatum item with status "fetch_gone"
and protocol status "redir_exceeded". During the next CrawlDb update the "gone" item will
set the status of existing items (including "db_fetched") with "db_gone". It shouldn't as
there has been no fetch of the final redirect target and indeed nothing is know about it's
status. An wrong db_gone may then cause that a page gets deleted from the search index.
> There are two possible solutions:
> 1. ignore protocol status "redir_exceeded" during CrawlDb update
> 2. when http.redirect.max is hit the fetcher stores nothing or a redirect status instead
of a fetch_gone
> Solution 2. seems easier to implement and it would be possible to make the behavior configurable:
> - store the redirect target as outlink, i.e. same behavior as if http.redirect.max ==
> - store "fetch_gone" (current behavior)
> - store nothing, i.e. ignore those redirects - this should be the default as it's close
to the current behavior without the risk to accidentally set successful fetches to db_gone

This message was sent by Atlassian Jira

View raw message