We log into APRS-IS with an empty filter, so the regional filter the code documents never applies #53
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The connect path asks for a default filter of
r/33/-96/100, but the config always defines the key, as nil whenAPRS_FILTERis unset, andApplication.get_env/3returns a stored nil rather than the default. The login frame therefore goes out asfilterwith no terms, and the deployment on port 10152 gets the unfiltered stream the producer buffer and three consumers were not sized for.Evidence
At
2f150f66:config/config.exs:74andconfig/runtime.exs:280both setaprs_is_default_filter: System.get_env("APRS_FILTER")with no fallback, so the key exists with a nil value when the env var is unset.lib/aprsme/is/is.ex:96isApplication.get_env(:aprsme, :aprs_is_default_filter, "r/33/-96/100"), whose default can never be reached for a stored nil.lib/aprsme/is/is.ex:242interpolatesfilter #{filter}into the login string, which renders as an empty term for nil.lib/aprsme/is/is.ex:244logsSending login string: ... filteron every connect, so the running app reports the empty filter today.k8s/deployment.yaml:181onward setsAPRS_CALLSIGN,APRS_PORT10152 andAPRS_HOSTand never setsAPRS_FILTER.Expected
With
APRS_FILTERunset the connection logs in with the documented regional filter, andAprsme.Is.get_status/0reports the filter in use instead of nil.How to verify
elixir -e 'Application.put_env(:demo, :f, nil); IO.inspect(Application.get_env(:demo, :f, "fallback"))'prints nil. Then startAprsme.Isagainst the mock server intest/support/aprs_is_mock.exwithAPRS_FILTERunset and assert the login frame carriesfilter r/33/-96/100.Acceptance criteria
APRS_FILTERfalls back to a real filter, not an empty term.APRS_FILTERor relies on the documented default, and one of them is written down.Effort: S
Lens: reliability