Comments (7)
Hi, was the WARC created in uncompressed form and then gzip-ed afterwards?
I believe I've seen this error when using a plain .warc file that was later gzipped.
The .warc.gz files created by archiving tools (such as wget, warcprox, Heritrix, etc..) contain individually gzipped record chunks, which are then concatenated together. This allows pywb to seek to each record without unzipping the whole file.
If the whole warc is gzipped, there is unfortunately no way to seek to the middle of a record, so indexing it in this way is not useful and is not supported.
But, it should definitely have a better error message and detect such as WARC.
from pywb.
The input warc.gz can be found here:
http://lemurproject.org/clueweb12/specs.php
(see the link to this file http://lemurproject.org/clueweb12/0013wb-88.warc.gz )
from pywb.
Taking a look at the warc, it does indeed appear that it is not gzip chunk compressed, but a single gzip file. For now, I'd say you should use that uncompressed version. Perhaps the warc was uncompressed and then recompressed again at some point? That would cause this issue. I've also checked this WARC against other tools and they also return errors.
I'll leave this open to improve the error messaging when dealing with such a WARC in pywb.
Also, there should be probably be a separate utility to help you compress the WARC properly, as running 'gzip' on it will not work, maybe gzip-warc or something like that which will compress each record individually.
from pywb.
Briefly taking a look at CreateClueWeb12B13Dataset.java
from http://lemurproject.org/clueweb12/ClueWeb12-CreateB13.php
If this was the code used to create these warcs, I believe that this is causing the issue.
It looks like its building a buffer of records and putting them into a single gzip file, which causes the problem. Instead, it needs to create a GzipOutputStream per record and then write it to a file.
from pywb.
Oh, the warctools package (https://github.com/internetarchive/warctools) has such a tool which will properly gzip the warc called warc2warc
gunzip 0013wb-88.warc.gz
warc2warc /tmp/0013wb-88.warc > /tmp/0013wb-88.warc.gz
cdx-indexer -s /tmp/0013wb-88.warc.gz
You can use this to fix the warcs and have a compressed version.
from pywb.
i'm having the same issue, but when indexing a bunch of files added at once - and i don't know which one is triggering the fault. is there a way to find out?
from pywb.
i've moved that conversation to #411, sorry for the noise.
from pywb.
Related Issues (20)
- PYWB stripping out part of URLs on timeline page <url>#/<something> HOT 1
- Pywb failing to handle self-redirects from OutbackCDX HOT 4
- String not set as translatable in template HOT 1
- Indexing Errors with YouTube JSON in POST Request Payload
- switch_locale not adding locale if missing from URL
- No search results (by domain) if default_locale set HOT 1
- Strings not translatable in VueUI by default
- URL of the zoom image in VueUI not using static_prefix HOT 2
- warc.gz files created by grab-site throw multiple errors when adding to a collection HOT 2
- `this` rewriting can affect dynamically generated content on the page
- Invited card HOT 1
- Allow for catch-all wildcard *, in ACLs HOT 3
- relative imports in .js are not loaded
- Replaying webpack content
- pywb record inserting domain and collection name into recorded URL on specific sites HOT 2
- Vimeo HLS/m3u8 download support
- Future dependency upgrades: drop Python 3.7, add Python 3.12
- Drop Python 2 compatibility layer
- Can't figure out how to make sequence HOT 4
- Update docs Usage section on creating web archives
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pywb.