Skip to content

IIIF manifest url builder fails to create the manifest url when using the new figgy ark cache #2956

@christinach

Description

@christinach

What maintenance needs to be done?

This PR updated the cache manager to create a new figgy arck cache. The figgy ark cache was created successfully but the IIIF manifest builder fails to create the absolute path of the manifest url.

Level of urgency

  • High
  • Moderate
  • Low

Acceptance criteria

  • Add back the new cache map changes to reate the figgy ark cache.
  • IIIF manifest builder should create successfully the new manifest url
  • If this change touches any of the files referenced in .rubocop_todo.yml create a new ticket to address the rubocop todo.

Implementation notes, if any

  • make sure you're testing the iiif manifest builder with the new figgy ark cache. not the old one which is used in the spec.

Error from honeybadger:

RuntimeError: Traject indexing failed for /tmp/full_reindex_file_unzip_fulldump_43972215950006421_20250909_00095602920251002-787896-fcwujm.xml_new_33: 2025-10-02T10:33:28-04:00  INFO traject (3.8.2) executing with: `-c marc_to_solr/lib/traject_config.rb /tmp/full_reindex_file_unzip_fulldump_43972215950006421_20250909_00095602920251002-787896-fcwujm.xml_new_33 -u http://lib-solr9-staging.princeton.edu:8983/solr/catalog-staging-rebuild -w Traject::PulSolrJsonWriter`
2025-10-02T10:33:28-04:00  INFO Reading from /tmp/full_reindex_file_unzip_fulldump_43972215950006421_20250909_00095602920251002-787896-fcwujm.xml_new_33
2025-10-02T10:33:28-04:00  INFO    Traject::PulSolrJsonWriter writing to 'http://lib-solr9-staging.princeton.edu:8983/solr/catalog-staging-rebuild/update/json' in batches of 100 with 1 bg threads
2025-10-02T10:33:28-04:00  INFO    Traject::Indexer with 1 processing threads, reader: AlmaReader and writer: Traject::PulSolrJsonWriter
2025-10-02T10:33:38-04:00  INFO Seeding the cache for figgy.princeton.edu using Solr...
2025-10-02T10:33:38-04:00 ERROR Encountered exception: bad component(expected absolute path component): /concern/scanned resources/21424022-5f3b-4a7a-9758-325dd5f550b2/manifest, total errors #<Concurrent::AtomicFixnum:0x00007f1eb39a18d8 value:1>
2025-10-02T10:33:38-04:00 FATAL Traject::CommandLine: Unexpected exception, terminating execution:     Exception: URI::InvalidComponentError: bad component(expected absolute path component): /concern/scanned resources/21424022-5f3b-4a7a-9758-325dd5f550b2/manifest
    /usr/local/lib/ruby/3.4.0/uri/generic.rb:770:in 'URI::Generic#check_path'

/usr/local/lib/ruby/3.4.0/uri/generic.rb:770:in 'URI::Generic#check_path': bad component(expected absolute path component): /concern/scanned resources/21424022-5f3b-4a7a-9758-325dd5f550b2/manifest (URI::InvalidComponentError)
	from /usr/local/lib/ruby/3.4.0/uri/generic.rb:816:in 'URI::Generic#path='
	from /usr/local/lib/ruby/3.4.0/uri/generic.rb:192:in 'URI::Generic#initialize'
	from /usr/local/lib/ruby/3.4.0/uri/generic.rb:136:in 'Class#new'
	from /usr/local/lib/ruby/3.4.0/uri/generic.rb:136:in 'URI::Generic.build'
	from /usr/local/lib/ruby/3.4.0/uri/http.rb:61:in 'URI::HTTP.build'
	from /opt/bibdata/releases/20251002143006/marc_to_solr/lib/iiif_manifest_url_builder.rb:24:in 'IIIFManifestUrlBuilder#build'
	from /opt/bibdata/releases/20251002143006/marc_to_solr/lib/princeton_marc.rb:361:in 'block in Object#electronic_access_links'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:246:in 'block in Traject::MarcExtractor#collect_matching_lines'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:231:in 'block (2 levels) in Traject::MarcExtractor#each_matching_line'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:230:in 'Array#each'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:230:in 'block in Traject::MarcExtractor#each_matching_line'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:228:in 'Array#each'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:228:in 'Traject::MarcExtractor#each_matching_line'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/marc_extractor.rb:245:in 'Traject::MarcExtractor#collect_matching_lines'
	from /opt/bibdata/releases/20251002143006/marc_to_solr/lib/princeton_marc.rb:329:in 'Object#electronic_access_links'
	from marc_to_solr/lib/traject_config.rb:360:in 'block (2 levels) in Traject::Indexer#load_config_file'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer/step.rb:138:in 'block in Traject::Indexer::ToFieldStep#execute'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer/step.rb:135:in 'Array#each'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer/step.rb:135:in 'Traject::Indexer::ToFieldStep#execute'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:472:in 'block (2 levels) in Traject::Indexer#map_to_context!'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:512:in 'Traject::Indexer#handle_mapping_errors'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:471:in 'block in Traject::Indexer#map_to_context!'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:465:in 'Array#each'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:465:in 'Traject::Indexer#map_to_context!'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/indexer.rb:590:in 'block (3 levels) in Traject::Indexer#process'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/traject-3.8.2/lib/traject/thread_pool.rb:123:in 'block in Traject::ThreadPool#maybe_in_thread_pool'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in 'Concurrent::RubyThreadPoolExecutor::Worker#run_task'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in 'block (3 levels) in Concurrent::RubyThreadPoolExecutor::Worker#create_worker'
	from <internal:kernel>:168:in 'Kernel#loop'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in 'block (2 levels) in Concurrent::RubyThreadPoolExecutor::Worker#create_worker'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in 'Kernel#catch'
	from /opt/bibdata/shared/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/execu

Metadata

Metadata

Assignees

Labels

maintenanceTicket related to maintenance that needs to be done

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions