-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
A note for the community
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request.
- If you are interested in working on this issue or have submitted a pull request, please leave a comment.
Problem
We want to use the file sink to store some logs.
In order to not exhaust disk space, these logs should be rotated, e.g. via logrotate.
Typically this works by renaming the file, optionally creating the original file as empty and notifying the emitter.
Then the emitter (vector in this case) can reopen the file and start to write into the new file.
vector says that it supports that operation (see File Rotate (create) here).
However, this does not work.
When doing the above procedure, vector still writes into the old file.
Sending SIGHUP doesn't help either (and other signals are not available/not documented, see here).
Configuration
sources:
demo_logs:
type: demo_logs
format: shuffle
interval: 5
sequence: true
lines:
- foo
- bar
sinks:
file_sink:
inputs:
- demo_logs
type: file
idle_timeout_secs: 60
path: "socket.json"
encoding:
codec: json
Version
vector 0.51.1 (x86_64-unknown-linux-gnu 44c8f1c 2025-11-13 15:16:05.303418529)
Debug Output
2025-12-08T12:09:11.366756Z DEBUG vector::app: Internal log rate limit configured. internal_log_rate_secs=0
2025-12-08T12:09:11.366823Z INFO vector::app: Log level is enabled. level="trace"
2025-12-08T12:09:11.366868Z DEBUG vector::app: Building runtime. worker_threads=8
2025-12-08T12:09:11.367000Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE
2025-12-08T12:09:11.388465Z INFO vector::app: Loading configs. paths=["vector.yaml"]
2025-12-08T12:09:11.392137Z DEBUG vector::config::loading: No secret placeholder found, skipping secret resolution.
2025-12-08T12:09:11.394287Z DEBUG vector::topology::builder: Building new source. component_id=demo_logs
2025-12-08T12:09:11.395307Z DEBUG vector::topology::builder: Building new sink. component_id=file_sink
2025-12-08T12:09:11.396735Z INFO vector::topology::running: Running healthchecks.
2025-12-08T12:09:11.396813Z DEBUG vector::topology::running: Connecting changed/added component(s).
2025-12-08T12:09:11.396827Z DEBUG vector::topology::running: Configuring outputs for source. component_id=demo_logs
2025-12-08T12:09:11.396838Z DEBUG vector::topology::running: Configuring output for component. component_id=demo_logs output_id=None
2025-12-08T12:09:11.397814Z DEBUG vector::topology::running: Connecting inputs for sink. component_id=file_sink
2025-12-08T12:09:11.397153Z INFO vector::topology::builder: Healthcheck passed.
2025-12-08T12:09:11.397864Z DEBUG vector::topology::running: Adding component input to fanout. component_id=file_sink fanout_id=demo_logs
2025-12-08T12:09:11.398384Z DEBUG vector::topology::running: Spawning new source. component_id=demo_logs
2025-12-08T12:09:11.398442Z TRACE vector::topology::running: Spawning new sink. component_id=file_sink
2025-12-08T12:09:11.398476Z INFO vector: Vector has started. debug="false" version="0.51.1" arch="x86_64" revision="44c8f1c 2025-11-13 15:16:05.303418529"
2025-12-08T12:09:11.398517Z INFO vector::app: API is disabled, enable by setting `api.enabled` to `true` and use commands like `vector top`.
2025-12-08T12:09:11.402863Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source pump supervisor starting.
2025-12-08T12:09:11.408936Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::topology::builder: Sink starting.
2025-12-08T12:09:11.405265Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source starting.
2025-12-08T12:09:11.410957Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source pump starting.
2025-12-08T12:09:11.412835Z TRACE vector: Beep.
2025-12-08T12:09:11.415969Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:11.415979Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:11.416029Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:11.416053Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:11.416060Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:11.416082Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Processing control message outside of send: ControlMessage::Add(ComponentKey { id: "file_sink" })
2025-12-08T12:09:11.416097Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:11.416103Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:11.416114Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:11.416128Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81956, tv_nsec: 994720938 } path=b"socket.json"
2025-12-08T12:09:11.416135Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Opening new file. path=b"socket.json"
2025-12-08T12:09:11.423628Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:11.423717Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:11.423733Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
2025-12-08T12:09:12.411028Z TRACE vector: Beep.
2025-12-08T12:09:13.410191Z TRACE vector: Beep.
2025-12-08T12:09:14.410082Z TRACE vector: Beep.
2025-12-08T12:09:15.410224Z TRACE vector: Beep.
2025-12-08T12:09:16.410061Z TRACE vector: Beep.
2025-12-08T12:09:16.410266Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:16.410280Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:16.410296Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:16.410434Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:16.410442Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:16.410459Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:16.410466Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:16.410476Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:16.410485Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81961, tv_nsec: 989081712 } path=b"socket.json"
2025-12-08T12:09:16.410513Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Working with an already opened file. path=b"socket.json"
2025-12-08T12:09:16.410520Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:16.410539Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:16.410546Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
2025-12-08T12:09:17.411227Z TRACE vector: Beep.
2025-12-08T12:09:18.410159Z TRACE vector: Beep.
2025-12-08T12:09:19.410014Z TRACE vector: Beep.
2025-12-08T12:09:20.410399Z TRACE vector: Beep.
2025-12-08T12:09:21.410803Z TRACE vector: Beep.
2025-12-08T12:09:21.410879Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:21.410887Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:21.410902Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:21.410920Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:21.410924Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:21.410937Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:21.410945Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:21.410952Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:21.410961Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81966, tv_nsec: 989557799 } path=b"socket.json"
2025-12-08T12:09:21.410968Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Working with an already opened file. path=b"socket.json"
2025-12-08T12:09:21.410972Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:21.410989Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:21.410995Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
2025-12-08T12:09:22.411645Z TRACE vector: Beep.
2025-12-08T12:09:23.411143Z TRACE vector: Beep.
2025-12-08T12:09:24.411180Z TRACE vector: Beep.
2025-12-08T12:09:25.411372Z TRACE vector: Beep.
2025-12-08T12:09:26.384632Z INFO vector::signal: Signal received. signal="SIGHUP"
2025-12-08T12:09:26.384899Z DEBUG vector::config::loading: No secret placeholder found, skipping secret resolution.
2025-12-08T12:09:26.386389Z INFO vector::topology::running: Reloading running topology with new configuration.
2025-12-08T12:09:26.394116Z INFO vector::topology::running: Running healthchecks.
2025-12-08T12:09:26.394290Z DEBUG vector::topology::running: Connecting changed/added component(s).
2025-12-08T12:09:26.394425Z INFO vector::topology::running: New configuration loaded successfully.
2025-12-08T12:09:26.395619Z INFO vector: Vector has reloaded. path=[File("vector.yaml", None)] internal_log_rate_limit=false
2025-12-08T12:09:26.410836Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:26.411066Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:26.410937Z TRACE vector: Beep.
2025-12-08T12:09:26.441353Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:26.441494Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:26.441502Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:26.441631Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:26.442931Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:26.442957Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:26.442968Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81972, tv_nsec: 21563683 } path=b"socket.json"
2025-12-08T12:09:26.443012Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Working with an already opened file. path=b"socket.json"
2025-12-08T12:09:26.443018Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:26.443075Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:26.443118Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
2025-12-08T12:09:27.411697Z TRACE vector: Beep.
2025-12-08T12:09:28.409380Z TRACE vector: Beep.
2025-12-08T12:09:29.409599Z TRACE vector: Beep.
2025-12-08T12:09:30.410396Z TRACE vector: Beep.
2025-12-08T12:09:31.409882Z TRACE vector: Beep.
2025-12-08T12:09:31.411938Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:31.411978Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:31.412131Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:31.412217Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:31.412254Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:31.412348Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:31.412407Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:31.412474Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:31.412487Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81976, tv_nsec: 991082874 } path=b"socket.json"
2025-12-08T12:09:31.412501Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Working with an already opened file. path=b"socket.json"
2025-12-08T12:09:31.412509Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:31.412575Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:31.412592Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
^C2025-12-08T12:09:31.887559Z INFO vector::signal: Signal received. signal="SIGINT"
2025-12-08T12:09:31.887689Z INFO vector: Vector has stopped.
2025-12-08T12:09:31.887989Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::utilization: Couldn't send utilization start wait message. component_id=ComponentKey { id: "file_sink" } error="Closed(..)"
2025-12-08T12:09:31.889636Z INFO vector::topology::running: Shutting down... Waiting on running components. remaining_components="demo_logs, file_sink" time_remaining="59 seconds left"
2025-12-08T12:09:32.411363Z TRACE vector: Beep.
2025-12-08T12:09:33.411364Z TRACE vector: Beep.
2025-12-08T12:09:34.409647Z TRACE vector: Beep.
2025-12-08T12:09:35.409595Z TRACE vector: Beep.
2025-12-08T12:09:36.410606Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::bytes_received: Bytes received. byte_size=0 protocol=none
2025-12-08T12:09:36.410631Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::internal_events::demo_logs: Received one event.
2025-12-08T12:09:36.410649Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_received: Events received. count=1 byte_size=19
2025-12-08T12:09:36.410667Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:36.410670Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=130 output=_default
2025-12-08T12:09:36.410737Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source finished normally.
2025-12-08T12:09:36.410887Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Processing control message inside of send: None
2025-12-08T12:09:36.410933Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_buffers::topology::channel::limited_queue: Sent item.
2025-12-08T12:09:36.410972Z TRACE source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector_core::fanout: Sent item to fanout.
2025-12-08T12:09:36.411009Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source pump finished normally.
2025-12-08T12:09:36.411034Z DEBUG source{component_kind="source" component_id=demo_logs component_type=demo_logs}: vector::topology::builder: Source pump supervisor task finished normally.
2025-12-08T12:09:36.410929Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::utilization: Couldn't send utilization start wait message. component_id=ComponentKey { id: "file_sink" } error="Closed(..)"
2025-12-08T12:09:36.411066Z TRACE vector: Beep.
2025-12-08T12:09:36.411624Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::utilization: Couldn't send utilization stop wait message. component_id=ComponentKey { id: "file_sink" } error="Closed(..)"
2025-12-08T12:09:36.411668Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_received: Events received. count=1 byte_size=130
2025-12-08T12:09:36.411681Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Computed next deadline. next_deadline=Instant { tv_sec: 81981, tv_nsec: 990277177 } path=b"socket.json"
2025-12-08T12:09:36.411795Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Working with an already opened file. path=b"socket.json"
2025-12-08T12:09:36.411803Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Writing an event to file. path=b"socket.json"
2025-12-08T12:09:36.411889Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector_common::internal_event::events_sent: Events sent. count=1 byte_size=128
2025-12-08T12:09:36.411902Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::internal_events::file: Bytes sent. byte_size=129 protocol="file" file=socket.json
2025-12-08T12:09:36.411920Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::utilization: Couldn't send utilization start wait message. component_id=ComponentKey { id: "file_sink" } error="Closed(..)"
2025-12-08T12:09:36.411989Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::utilization: Couldn't send utilization stop wait message. component_id=ComponentKey { id: "file_sink" } error="Closed(..)"
2025-12-08T12:09:36.411995Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Receiver exhausted, terminating the processing loop.
2025-12-08T12:09:36.412001Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Closing all the open files.
2025-12-08T12:09:36.420604Z TRACE sink{component_kind="sink" component_id=file_sink component_type=file}: vector::sinks::file: Successfully closed file. path=b"socket.json"
2025-12-08T12:09:36.420895Z DEBUG sink{component_kind="sink" component_id=file_sink component_type=file}: vector::topology::builder: Sink finished normally.
Example Data
# Start in background.
VECTOR_INTERNAL_LOG_RATE_LIMIT=0 vector -vvv --config vector.yaml
# Doesn't work.
mv socket.json socket.json.1
# Does not help either.
touch socket.json
# Sending SIGHUP also does not reopen the file.
pkill -SIGHUP vector
Additional Context
Reducing idle_timeout_secs to some really low value (e.g. 1 second) workarounds the issue.
However, it is not efficient to reopen the file every second.
And if logs come fast enough (e.g. 2 logs per second), even that doesn't ensure the new file is ever used, as the timeout wouldn't ever be reached.