Git Product home page Git Product logo

image-server-node-cantaloupe's Introduction

Image Server Cantaloupe

A single Docker file that builds and runs Cantaloupe image server.

Configuration

There are 3 different commands for running:

Default

The default command runs Cantaloupe using cantaloupe.properties.sample.

This sample file is copied from the Cantaloupe repo with the following changes:

# Use ManualSelectionStrategy as AutomaticSelectionStrategy will always try and use Kakadu, 
# see Cantaloupe https://github.com/cantaloupe-project/cantaloupe/issues/559
processor.selection_strategy = ManualSelectionStrategy

# Use GrokProcessor for handling jp2 files
processor.ManualSelectionStrategy.jp2 = GrokProcessor

Grok is favoured over OpenJpeg as the latter isn't correctly handling ICC profiles

S3 Sourced Properties

Set PROPERTIES_LOCATION env var to a valid S3 location containing a cantaloupe properties file and use /opt/app/s3-config.sh command. This will download the properties file and launch cantaloupe using it.

Kakadu Native Processor

Set KAKADU_LOCATION env var to a valid S3 location containing Kakadu binaries and KAKADU_VERSION to the version of Kakadu being used. Use /opt/app/kakadu.sh command.

This will download and extract the Kakadu binaries to appropriate location for cantaloupe.

Also need to set PROPERTIES_LOCATION as above as it's expected that config will be loaded from S3.

Remember to set AutomaticSelectionStrategy to use Kakadu, see (default)[#default] above.

Kakadu Archive

It's expected that the Kakadu archive is a tar.gz with the following structure:

kakadu-<version>/
  lib/
  bin/
  <etc>/
java/
  kdu_jni/
  kdu_jni.jar

Handling Multiple S3 bucket sources

When using an S3Source a single bucket is supported via the S3Source.BasicLookupStrategy.bucket.name property.

To support multiple buckets, the included delegates.rb file handles the s3source_object_info delegate. This parses the incoming identifier and pulls bucket and key from it. It handles the following formats:

  • s3://{region}/{bucket}/{key}
  • s3://{bucket}/{key}

A sample request would then be: http://cantaloupe/iiif/3/s3:%2f%2fmy-bucket%2f2my-key/full/max/0/default.jpg.

delegate_script.enabled = true
source.static = S3Source
S3Source.lookup_strategy = ScriptLookupStrategy

Running Locally

The dockerfile can be run locally, or run via the sample docker-compose file.

This runs on port 8182 and by default will look in /home/cantaloupe/images/ for image sources.

# build docker file
docker build -t dlcs-cantaloupe:local .

# run docker file, enabling /admin
docker run --rm -it -p 8182:8182 \
    -e ENDPOINT_ADMIN_ENABLED=true \
    -e ENDPOINT_ADMIN_SECRET=admin \
    -v path/to/images:/home/cantaloupe/images/ \
    --name dlcs-cantaloupe \
    dlcs-cantaloupe:local

# use cantaloupe properties file stored in s3
docker run --rm -it -p 8182:8182 \
    -e ENDPOINT_ADMIN_ENABLED=true \
    -e ENDPOINT_ADMIN_SECRET=admin \
    -e PROPERTIES_LOCATION=s3://my-bucket-name/cantaloupe.properties.s3 \
    -v path/to/images:/home/cantaloupe/images/ \
    --name dlcs-cantaloupe \
    dlcs-cantaloupe:local \
    /opt/app/s3-config.sh

# use cantaloupe properties file stored in s3 and Kakadu binaries
docker run --rm -it -p 8182:8182 \
    -e ENDPOINT_ADMIN_ENABLED=true \
    -e ENDPOINT_ADMIN_SECRET=admin \
    -e PROPERTIES_LOCATION=s3://my-bucket-name/cantaloupe.properties.s3 \
    -e KAKADU_LOCATION=s3://my-bucket-name/kakadu-8.2.1.tar.gz \
    -e KAKADU_VERSION=8.2.1 \
    -v path/to/images:/home/cantaloupe/images/ \
    --name dlcs-cantaloupe \
    dlcs-cantaloupe:local \
    /opt/app/kakadu.sh

# run as "special-server" using S3Source
docker run --rm -it -p 8182:8182 \
    -e ENDPOINT_ADMIN_ENABLED=true \
    -e ENDPOINT_ADMIN_SECRET=admin \
    -e DELEGATE_SCRIPT_ENABLED=true \
    -e SOURCE_STATIC=S3Source \
    -e S3SOURCE_LOOKUP_STRATEGY=ScriptLookupStrategy \
    --name dlcs-cantaloupe \
    dlcs-cantaloupe:local

Alternatively there's a docker compose file to run, copy .env.dist -> .env and alter as required.

# Run docker-compose
docker compose up

Processors

By default it will run with Cantaloupe running the following processors:

  • Ffmpeg
  • Grok
  • Jai
  • Java2d
  • OpenJpeg (v2.5.0)
  • PdfBox
  • TurboJpeg

Kakadu

Kakadu native processor is supported by providing path to Kakadu (see above)

Dependencies

libjpeg dep is copied from the official cantaloupe repo.

Java Memory

The initial heap and maximum heap size are defaulted to initial 256MB/max 2GB in the Dockerfile.

These can be overridden by specifying the following envvars (see https://cantaloupe-project.github.io/manual/5.0/deployment.html#MemoryHeapMemory):

  • MAXHEAP - Value for -Xmx Java arg.
  • INITHEAP - Value for -Xms Java arg.

e.g.

docker run --rm -it -p 8182:8182 \
    -e ENDPOINT_ADMIN_ENABLED=true \
    -e ENDPOINT_ADMIN_SECRET=admin \
    -e MAXHEAP=5g \
    -e INITHEAP=3g \
    -v path/to/images:/home/cantaloupe/images/ \
    --name dlcs-cantaloupe \
    dlcs-cantaloupe:local

image-server-node-cantaloupe's People

Contributors

donaldgray avatar

Stargazers

Cody Carvel avatar

Watchers

 avatar  avatar

image-server-node-cantaloupe's Issues

Issue with GrokProcessor/OpenJPEGProcessor

Description

Due to issue #6 we tried to switch to using Grok or OpenJPEG processors. These processors handled all of the items liste in the linked ticket, however on a number of others we received a IndexOutOfBoundsException.

Sample breaking images:

  • b21525559_0065.jp2
  • b21525559_0165.jp2
  • b21525559_0265.jp2

This happens regardless of whether it is an image or info.json request

Error

 java.lang.IndexOutOfBoundsException: pos < flushedPos!
    at java.desktop/javax.imageio.stream.FileImageInputStream.seek(FileImageInputStream.java:143)
    at edu.illinois.library.cantaloupe.source.stream.BufferedImageInputStream.seek(BufferedImageInputStream.java:120)
    at java.desktop/javax.imageio.stream.ImageInputStreamImpl.skipBytes(ImageInputStreamImpl.java:759)
    at edu.illinois.library.cantaloupe.processor.codec.jpeg2000.JPEG2000MetadataReader.skipBox(JPEG2000MetadataReader.java:316)
    at edu.illinois.library.cantaloupe.processor.codec.jpeg2000.JPEG2000MetadataReader.readBox(JPEG2000MetadataReader.java:310)
    at edu.illinois.library.cantaloupe.processor.codec.jpeg2000.JPEG2000MetadataReader.readData(JPEG2000MetadataReader.java:282)
    at edu.illinois.library.cantaloupe.processor.codec.jpeg2000.JPEG2000MetadataReader.getEXIF(JPEG2000MetadataReader.java:174)
    at edu.illinois.library.cantaloupe.processor.OpenJpegProcessor.readInfo(OpenJpegProcessor.java:424)
    at edu.illinois.library.cantaloupe.cache.InfoService.readInfo(InfoService.java:220)
    at edu.illinois.library.cantaloupe.cache.InfoService.getOrReadInfo(InfoService.java:153)
    at edu.illinois.library.cantaloupe.cache.CacheFacade.getOrReadInfo(CacheFacade.java:67)
    at edu.illinois.library.cantaloupe.resource.AbstractRequestHandler.getOrReadInfo(AbstractRequestHandler.java:39)
    at edu.illinois.library.cantaloupe.resource.ImageRequestHandler.handle(ImageRequestHandler.java:378)
    at edu.illinois.library.cantaloupe.resource.iiif.v2.ImageResource.doGET(ImageResource.java:128)
    at edu.illinois.library.cantaloupe.resource.HandlerServlet.handle(HandlerServlet.java:97)
    at edu.illinois.library.cantaloupe.resource.HandlerServlet.doGet(HandlerServlet.java:35)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.Server.handle(Server.java:516)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
    at java.base/java.lang.Thread.run(Thread.java:829)

Next Steps

We need to identify:

We need to identify:

  • Is this an issue with Grok or OpenJPEG?
    • Something to do with how we are building?
    • Specific versions only?
  • Or Cantaloupes use of Grok/OpenJPEG?
    • Seems more likely as the same error is seen in both instances.

Spike: can Cantaloupe support JP2 streams?

At the moment, Cantaloupe's performance is poor with OpenJPEG or Grok processors because it needs to copy files before accessing streams. This also means it can't make byte-range requests to S3 with those processors.

It does work fine with Kakadu though - so can we make it work the same way for OpenJPEG and Grok and therefore support byte-range S3 requests without Kakadu?

Spike to investigate.

Issue with KakaduNativeProcessor

Description

When running this image with KDU 8.2.1 we are running into frequent crashes. The image seems more stable locally when running on a single core (via docker-compose)

deploy:
  resources:
    limits:
      cpus: '1'
      memory: 4096M

However, when deploying to AWS ECS, either as a Fargate or EC2 service this is still unstable. Using different combination of S3Source/FileSystemSource, StreamStrategy/CacheStrategy/DownloadStrategy and enabling/disabling chunking makes no difference.

This is not happening with all images, we are encountering this in Wellcome's environment, mostly with images that originated from proquest. E.g.

  • b17523722_hin-wel-all-00000343_0049.jp2
  • b12948093_hin-wel-all-00009067_0001.jp2
  • b12948093_hin-wel-all-00009067_0065.jp2
  • b10004816_hin-wel-all-00012196_0003.jp2
  • b10004816_hin-wel-all-00012196_0004.jp2

Note that the above are larger than most other Wellcome JP2s but are by no means large (~8MB). Tile requests seem fine but it could be due to the size.

Errors/Behavour

Cantaloupe logs will often output something similar to:

[qtp283318938-12] �[34mINFO �[0;39m �[36me.i.l.c.r.i.v.ImageResource�[0;39m - Handling GET /iiif/2/5%2Fb12946308_hin-wel-all-00001677_0040.jp2%2Fb12946308_hin-wel-all-00001677_0040.jp2.jp2/full/max/0/default.jpg
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.r.i.v.ImageResource�[0;39m - Request headers: X-Forwarded-Proto: http; X-Forwarded-For: 62.254.125.28; Host: kduspecial.dlcs.io; X-Forwarded-Port: 80; X-Amzn-Trace-Id: Root=1-646cbff7-70123d20199f2b423a0d24bd
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.i.MetaIdentifier�[0;39m - [Raw path component: 5%2Fb12946308_hin-wel-all-00001677_0040.jp2%2Fb12946308_hin-wel-all-00001677_0040.jp2.jp2] -> [decoded: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2] -> [slashes substituted: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2]
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.i.Identifier�[0;39m - [Raw path component: 5%2Fb12946308_hin-wel-all-00001677_0040.jp2%2Fb12946308_hin-wel-all-00001677_0040.jp2.jp2] -> [decoded: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2] -> [slashes substituted: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2]
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - getInfo(): not found: /var/cache/cantaloupe/info/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b.json
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - getSourceImageFile(): /var/cache/cantaloupe/source/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.s.FilesystemSource�[0;39m - Resolved 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2 to /home/cantaloupe/images/5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.p.ProcessorFactory�[0;39m - KakaduNativeProcessor selected for format JPEG2000 (AutomaticSelectionStrategy offered KakaduNativeProcessor, OpenJpegProcessor, GrokProcessor)
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.p.ProcessorConnector�[0;39m - File -> FileProcessor connection between FilesystemSource and KakaduNativeProcessor
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - getInfo(): not found: /var/cache/cantaloupe/info/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b.json
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.InfoService�[0;39m - readInfo(): read 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2 from KakaduNativeProcessor in 9 msec
[work-nm-2516274] �[39mDEBUG�[0;39m �[36me.i.l.c.c.InfoService�[0;39m - putInObjectCache(): adding info: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2 (new size: 1)
[work-nm-2516274] �[39mDEBUG�[0;39m �[36me.i.l.c.c.InfoCache�[0;39m - putInObjectCache(): adding info: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2 (new size: 1)
[work-nm-2516274] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - put(): writing 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2 to /var/cache/cantaloupe/info/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b.json_work-nm-2516274.tmp
[work-nm-2516274] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - put(): moving /var/cache/cantaloupe/info/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b.json_work-nm-2516274.tmp to /var/cache/cantaloupe/info/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b.json
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.r.i.v.ImageResource�[0;39m - Base URI assembled from X-Forwarded headers: http://kduspecial.dlcs.io
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - newDerivativeImageInputStream(): /var/cache/cantaloupe/image/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b_56782f8b936d89dd34b4839ae243ef0a.jpg
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache�[0;39m - newOutputStream(): miss; caching 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2_1:1_scalebypixels:!2612,3827,bicubic_encode:jpg_JPEG_80_interlace_#FFFFFF_8_e95198c48292fa4c8fc0617e850c1f6d
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.r.ImageRepresentation�[0;39m - Writing to the response & derivative cache simultaneously
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Rendered region 0,0/2612x3826; source 0,0/2612x3826; 0x reduction factor; differential scale 8071693/10000000; PPI 600.0x600.0
[Thread-10] �[1;31mERROR�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Kakadu Core Error:
System is entering deadlock. This may be a false alarm if you are expecting a
call to `kdu_thread_entity::signal_condition' from a foreign thread, but then
`kdu_thread_entity::wait_for_condition' should have supplied
`expect_foreign_wakeup'=false to avoid the false alarm.
Deadlock detected by thread 2
* Working-waiters state 0x2000000000000004
* Non-waiting workers state 0x0000000000000081; (A,T,I)=(1,0,2)
* Thread 0: <idle>; <Status=--A>; <WWID=0>, conditions...
Waiting for "get_new_synthesized_stripe" (S,F)=(...,Local)
* Thread 1: <idle>; <Status=--A>; <No-WWID>
* Thread 2: <active>; <Status=--A>; <No-WWID>
* Thread 3: <idle>; <Status=--A>; <No-WWID>
Kakadu Core Error:
System is entering deadlock. This may be a false alarm if you are expecting a
call to `kdu_thread_entity::signal_condition' from a foreign thread, but then
`kdu_thread_entity::wait_for_condition' should have supplied
`expect_foreign_wakeup'=false to avoid the false alarm.
Deadlock detected by thread 2
* Working-waiters state 0x2000000000000004
* Non-waiting workers state 0x0000000000000081; (A,T,I)=(1,0,2)
* Thread 0: <idle>; <Status=--A>; <WWID=0>, conditions...
Waiting for "get_new_synthesized_stripe" (S,F)=(...,Local)
* Thread 1: <idle>; <Status=--A>; <No-WWID>
* Thread 2: <active>; <Status=--A>; <No-WWID>
* Thread 3: <idle>; <Status=--A>; <No-WWID>
[qtp283318938-12] �[1;31mERROR�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Fatal error in the codestream management machinery.
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.p.c.ImageWriterFacade�[0;39m - Writing with edu.illinois.library.cantaloupe.processor.codec.jpeg.TurboJPEGImageWriter
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.r.ImageRepresentation�[0;39m - KakaduNativeProcessor processed in 383 msec: 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2_1:1_scalebypixels:!2612,3827,bicubic_encode:jpg_JPEG_80_interlace_#FFFFFF_8_e95198c48292fa4c8fc0617e850c1f6d
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache$ConcurrentFileOutputStream�[0;39m - close(): closing stream for 5/b12946308_hin-wel-all-00001677_0040.jp2/b12946308_hin-wel-all-00001677_0040.jp2.jp2_1:1_scalebypixels:!2612,3827,bicubic_encode:jpg_JPEG_80_interlace_#FFFFFF_8_e95198c48292fa4c8fc0617e850c1f6d
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.c.FilesystemCache$ConcurrentFileOutputStream�[0;39m - close(): moving /var/cache/cantaloupe/image/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b_56782f8b936d89dd34b4839ae243ef0a.jpg_qtp283318938-12.tmp to /var/cache/cantaloupe/image/bd/41/77/bd41775f8f5f909ca8c04c76ac24772b_56782f8b936d89dd34b4839ae243ef0a.jpg
[qtp283318938-12] �[39mDEBUG�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Kakadu Core Warning:
Destroying the memory allocator used to manage core precinct resources without
first releasing all the relevant allocated memory.

which doesn't necessarily happen just before a crash and seemingly doesn't happen on every occasion. The actual error is:

[qtp283318938-17] �[39mDEBUG�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Rendered region 0,0/2630x3801; source 0,0/2630x3801; 0x reduction factor; differential scale 7872825/10000000; PPI 600.0x600.0
[qtp283318938-17] �[39mDEBUG�[0;39m �[36me.i.l.c.p.c.j.JPEG2000KakaduImageReader�[0;39m - Rendered region 0,0/2630x3801; source 0,0/2630x3801; 0x reduction factor; differential scale 7872825/10000000; PPI 600.0x600.0
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f9ed7742a77, pid=23, tid=80
#
# JRE version: OpenJDK Runtime Environment (11.0.18+10) (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
# Java VM: OpenJDK 64-Bit Server VM (11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C [libkdu_jni.so+0x347a77] kd_core_local::kd_resolution::advance_bkgnd_parsed_precinct_rows(kdu_core::kdu_thread_env*, bool)+0x1c7
#
# Core dump will be written. Default location: /opt/kakadu/core.23
#
# An error report file with more information is saved as:
# /opt/kakadu/hs_err_pid23.log
#
# If you would like to submit a bug report, please visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
#
/opt/app/s3-config.sh: line 11: 23 Aborted (core dumped) java -Dcantaloupe.config=/cantaloupe/cantaloupe.properties -Xmx$MAXHEAP -Xms$INITHEAP -jar /cantaloupe/cantaloupe-$CANTALOUPE_VERSION.jar

# Problematic frame:
# C [libkdu_jni.so+0x347a77] kd_core_local::kd_resolution::advance_bkgnd_parsed_precinct_rows(kdu_core::kdu_thread_env*, bool)+0x1c7

Next Steps

We need to identify:

  • Is this an issue with Kakadu?
    • 8.2.1 only? Do older/newer versions work?
    • Can we get support if so?
  • Or Cantaloupes use of Kakadu?
    • How do we fix if so?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.