Skip to content

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

@bushev

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions