Skip to content

Strange behaviour after fetching 1MB file from S3 in Lambda function (Node.js) #485

Description

@bushev

Steps:

  1. Create a bucket
  2. Deploy Lambda function (~20MB) with ffmpeg
  3. Call ffprobe using S3 signed URL:
const input = s3.client.getSignedUrl('getObject', {
    Bucket: 'my-bucket',
    Key: 'video_1mb.mp4',
    Expires: 1000
})

const metadata = await (new Promise((resolve, reject) => {

    ffmpeg.ffprobe(input, async (err, data) => {

      if (err) {

        return reject(err)
      }

      resolve(data)
    })
}))
  1. Stop & Destroy all containers and images
  2. Remove Localstack directory ./localstack
    // Repeat 1 - 5 (~5 times)
  3. Start localstack
  4. Try to create the S3 bucket
  5. Got a timeout error:

make_bucket failed: s3://my-bucket Read timeout on endpoint URL: "http://localhost:4572/my-bucket"

Workaround: Restart Docker daemon


docker-compose.yml

version: '3.7'

services:
  localstack:
    image: localstack/localstack:0.9.0
    container_name: localstack
    ports:
      - '4567-4593:4567-4593'
      - '8080:8080'
    environment:
      - SERVICES=iam,lambda,s3,dynamodb,apigateway
      - DEBUG=yes
      - DATA_DIR=/tmp/localstack/data
      - PORT_WEB_UI=8080
      - LAMBDA_EXECUTOR=docker-reuse
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - './localstack:/tmp/localstack'
      - '/var/run/docker.sock:/var/run/docker.sock'

Host platform: MacOS
Localstack image version: 0.9.0
Docker version: 18.09.2, build 6247962
docker-compose version: 1.23.2, build 1110ad01

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions