Actions
Bug #38713
closedRSS URL doesn't support IPv6 literal
Description
When the RSS URL is set to use an IPv6 literal in the URL it breaks.
Steps to reproduce:
1. Go to settings
2. Set rss_enable to true
3. Set rss_url to http://[2001:db8::1]/rss.xml
4. Wait for RSS to cron to or trigger it explicitly
Or manually:
FOREMAN_RSS_URL='http://[2001:db8::1]/rss.xml' rake rss:create_notifications
Expected result:
Retrieve it correctly
Actual result:
$ be rake rss:create_notifications /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/pry-byebug-3.8.0/lib/pry-byebug/control_d_handler.rb:5: warning: control_d_handler's arity of 2 parameters was deprecated (eval_string, pry_instance). Now it gets passed just 1 parameter (pry_instance) 2025-09-04T13:30:09 [I|app|] Rails cache backend: File 2025-09-04T13:30:09 [W|app|] You are trying to replace import_subnets from . Adding allowed actions from plugin permissions to the existing one. 2025-09-04T13:30:11 [W|not|] Fetching RSS failed 2025-09-04T13:30:11 [I|not|] Backtrace for 'Fetching RSS failed' error (SocketError): Failed to open TCP connection to [2001:db8::1]:80 (getaddrinfo: Name or service not known) | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:987:in `initialize' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:987:in `open' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:987:in `block in connect' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:985:in `connect' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:970:in `do_start' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:959:in `start' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/net/http.rb:621:in `start' | /home/ekohl/dev/foreman/app/services/ui_notifications/rss_notifications_checker.rb:81:in `load_rss_feed' | /home/ekohl/dev/foreman/app/services/ui_notifications/rss_notifications_checker.rb:44:in `deliver!' | /home/ekohl/dev/foreman/lib/tasks/rss.rake:42:in `block (2 levels) in <main>' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:281:in `block in execute' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:281:in `each' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:281:in `execute' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:219:in `block in invoke_with_call_chain' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:199:in `synchronize' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:199:in `invoke_with_call_chain' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/task.rb:188:in `invoke' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:188:in `invoke_task' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:138:in `block (2 levels) in top_level' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:138:in `each' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:138:in `block in top_level' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:147:in `run_with_threads' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:132:in `top_level' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:83:in `block in run' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:214:in `standard_exception_handling' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/lib/rake/application.rb:80:in `run' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>' | /home/ekohl/.rbenv/versions/3.0.4/bin/rake:25:in `load' | /home/ekohl/.rbenv/versions/3.0.4/bin/rake:25:in `<top (required)>' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli/exec.rb:58:in `load' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli/exec.rb:58:in `kernel_load' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli/exec.rb:23:in `run' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli.rb:479:in `exec' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli.rb:31:in `dispatch' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/cli.rb:25:in `start' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.2.33/libexec/bundle:49:in `block in <top (required)>' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/3.0.0/bundler/friendly_errors.rb:103:in `with_friendly_errors' | /home/ekohl/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.2.33/libexec/bundle:37:in `<top (required)>' | /home/ekohl/.rbenv/versions/3.0.4/bin/bundle:23:in `load' | /home/ekohl/.rbenv/versions/3.0.4/bin/bundle:23:in `<main>'
Actions