Project

General

Profile

Bug #27557

Rebuilding hosts with 64-bit MACs fails because DHCP entries are not deleted

Added by Cameron Berkley about 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
DHCP
Target version:
-
Difficulty:
Triaged:
No
Bugzilla link:

Description

Description:
When attempting to re-build a host with a managed primary interface with a 64-bit MAC (e.g. an InfiniBand NIC configured for IPoIB), the rebuild fails, complaining that the DHCP entry already exists. It appears that the original DHCP entry is not found and thus not deleted. I don't really know ruby or the codebase, but I think the proxy may be failing to parse these entries out of the leases file.

Version-Release number of selected component (if applicable):
Foreman server:
CentOS Linux release 7.6.1810
foreman-1.21.3-1

Foreman proxy server:
CentOS Linux release 7.6.1810
foreman-proxy-1.21.3-1
dhcp-4.2.5-68

How reproducible:
Always

Steps to Reproduce:
1.) Create a host with a 64-bit MAC (e.g. 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff) on the primary interface.
2.) Cancel the initial build
3.) Hit build again

Actual results:
Build fails with complaint:
Failed to enable cameron-test-64bitmac.rcc.fsu.edu for installation: ["Create DHCP Settings for cameron-test-64bitmac.rcc.fsu.edu task failed with the following error: ERF12-6899 [ProxyAPI::ProxyException]: Unable to set DHCP entry ([RestClient::BadRequest]: 400 Bad Request) for proxy https://h22-dns1-36.rcc.fsu.edu:9090/dhcp", "Failed to perform rollback on Remove DHCP Settings for cameron-test-64bitmac.rcc.fsu.edu - ERF12-6899 [ProxyAPI::ProxyException]: Unable to set DHCP entry ([RestClient::BadRequest]: 400 Bad Request) for proxy https://h22-dns1-36.rcc.fsu.edu:9090/dhcp"]

Expected results:
Build continues without error

Additional info:
Logs from the foreman-proxy:

Note in particular where the DHCP record cannot be found.

2019-08-08T11:03:23  [D] accept: ::ffff:144.174.87.2:54546
2019-08-08T11:03:23  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:23 3db4fc39 [I] Started GET /features 
2019-08-08T11:03:23 3db4fc39 [I] Finished GET /features with 200 (0.58 ms)
2019-08-08T11:03:23  [D] close: ::ffff:144.174.87.2:54546
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54566
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started GET /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [E] No DHCP record for MAC 144.174.40.0/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff found
2019-08-08T11:03:25 3db4fc39 [D] No DHCP record for MAC 144.174.40.0/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff found
2019-08-08T11:03:25 3db4fc39 [I] Finished GET /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff with 404 (3.75 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54566
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54568
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started GET /144.174.40.0/ip/144.174.40.225 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [E] No DHCP records for IP 144.174.40.0/144.174.40.225 found
2019-08-08T11:03:25 3db4fc39 [D] No DHCP records for IP 144.174.40.0/144.174.40.225 found
2019-08-08T11:03:25 3db4fc39 [I] Finished GET /144.174.40.0/ip/144.174.40.225 with 404 (3.47 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54568
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54570
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started GET /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [E] No DHCP record for MAC 144.174.40.0/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff found
2019-08-08T11:03:25 3db4fc39 [D] No DHCP record for MAC 144.174.40.0/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff found
2019-08-08T11:03:25 3db4fc39 [I] Finished GET /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff with 404 (3.04 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54570
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54574
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started DELETE /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [I] Finished DELETE /144.174.40.0/mac/80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff with 200 (1.63 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54574
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54576
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started POST /144.174.40.0 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set name = "cameron-test-64bitmac.rcc.fsu.edu" 
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set ip-address = 144.174.40.225
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set hardware-type = 1
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set statements = "filename = \"pxelinux.0\"; next-server = 90:ae:57:02; option host-name = \"cameron-test-64bitmac.rcc.fsu.edu\";" 
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - create
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [E] Omshell failed:
> > > obj: <null>
, > obj: host
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, statements = "filename = "pxelinux.0"; next-server = 90:ae:57:02; option host-name = "cameron-test-64bitmac.rcc.fsu.edu";" 
, > can't open object: already exists
, obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, statements = "filename = "pxelinux.0"; next-server = 90:ae:57:02; option host-name = "cameron-test-64bitmac.rcc.fsu.edu";" 
, > 
2019-08-08T11:03:25 3db4fc39 [E] Failed to add DHCP reservation for cameron-test-64bitmac.rcc.fsu.edu (144.174.40.225 / 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff): Entry already exists
2019-08-08T11:03:25 3db4fc39 [D] <Proxy::DHCP::Error> Failed to add DHCP reservation for cameron-test-64bitmac.rcc.fsu.edu (144.174.40.225 / 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff): Entry already exists
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:97:in `report'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:80:in `om_disconnect'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:54:in `om_add_record'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:30:in `add_record'
    /usr/share/foreman-proxy/modules/dhcp/dhcp_api.rb:98:in `block in <class:DhcpApi>'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `block in compile!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `[]'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
    /usr/share/foreman-proxy/lib/proxy/log.rb:86:in `call'
    /usr/share/foreman-proxy/lib/proxy/request_id_middleware.rb:14:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/nulllogger.rb:9:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/builder.rb:153:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
    /usr/share/ruby/webrick/httpserver.rb:138:in `service'
    /usr/share/ruby/webrick/httpserver.rb:94:in `run'
    /usr/share/ruby/webrick/server.rb:295:in `block in start_thread'
    /usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `call'
    /usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2019-08-08T11:03:25 3db4fc39 [I] Finished POST /144.174.40.0 with 400 (26.67 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54576
2019-08-08T11:03:25  [D] accept: ::ffff:144.174.87.2:54578
2019-08-08T11:03:25  [D] Rack::Handler::WEBrick is invoked.
2019-08-08T11:03:25 3db4fc39 [I] Started POST /144.174.40.0 
2019-08-08T11:03:25 3db4fc39 [D] verifying remote client ::ffff:144.174.87.2 against trusted_hosts ["katello.rcc.fsu.edu", "h22-dns1-36.rcc.fsu.edu"]
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set name = "cameron-test-64bitmac.rcc.fsu.edu" 
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set ip-address = 144.174.40.225
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set hardware-type = 1
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - set statements = "filename = \"pxelinux.0\"; next-server = 90:ae:57:02; option host-name = \"cameron-test-64bitmac.rcc.fsu.edu\";" 
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [D] omshell: executed - create
2019-08-08T11:03:25 3db4fc39 [D] <NilClass> nil
2019-08-08T11:03:25 3db4fc39 [E] Omshell failed:
> > > obj: <null>
, > obj: host
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, > obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, statements = "filename = "pxelinux.0"; next-server = 90:ae:57:02; option host-name = "cameron-test-64bitmac.rcc.fsu.edu";" 
, > can't open object: already exists
, obj: host
, name = "cameron-test-64bitmac.rcc.fsu.edu" 
, ip-address = 90:ae:28:e1
, hardware-address = 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff
, hardware-type = 1
, statements = "filename = "pxelinux.0"; next-server = 90:ae:57:02; option host-name = "cameron-test-64bitmac.rcc.fsu.edu";" 
, > 
2019-08-08T11:03:25 3db4fc39 [E] Failed to add DHCP reservation for cameron-test-64bitmac.rcc.fsu.edu (144.174.40.225 / 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff): Entry already exists
2019-08-08T11:03:25 3db4fc39 [D] <Proxy::DHCP::Error> Failed to add DHCP reservation for cameron-test-64bitmac.rcc.fsu.edu (144.174.40.225 / 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:aa:bb:cc:dd:ee:ff): Entry already exists
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:97:in `report'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:80:in `om_disconnect'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:54:in `om_add_record'
    /usr/share/foreman-proxy/modules/dhcp_common/isc/omapi_provider.rb:30:in `add_record'
    /usr/share/foreman-proxy/modules/dhcp/dhcp_api.rb:98:in `block in <class:DhcpApi>'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `block in compile!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `[]'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
    /usr/share/foreman-proxy/lib/proxy/log.rb:86:in `call'
    /usr/share/foreman-proxy/lib/proxy/request_id_middleware.rb:14:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/nulllogger.rb:9:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
    /usr/share/gems/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/builder.rb:153:in `call'
    /usr/share/gems/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
    /usr/share/ruby/webrick/httpserver.rb:138:in `service'
    /usr/share/ruby/webrick/httpserver.rb:94:in `run'
    /usr/share/ruby/webrick/server.rb:295:in `block in start_thread'
    /usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `call'
    /usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2019-08-08T11:03:25 3db4fc39 [I] Finished POST /144.174.40.0 with 400 (25.42 ms)
2019-08-08T11:03:25  [D] close: ::ffff:144.174.87.2:54578

Associated revisions

Revision d059b623 (diff)
Added by Lukas Zapletal about 1 year ago

Fixes #27557 - support EUI-48, 64 and InfiniBand MACs

History

#1 Updated by Lukas Zapletal about 1 year ago

Hello, what you report is not EUI-64 MAC but 40bytes infiniband MAC. Anyway, we don't support/test any of these, however ISC DHCP does appear to support that. Our conf parser however assumes only EUI-48 MAC addresses, I will fix that, apply that patch and let me know if that helps.

#2 Updated by The Foreman Bot about 1 year ago

  • Assignee set to Lukas Zapletal
  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/smart-proxy/pull/671 added

#3 Updated by Cameron Berkley about 1 year ago

Lukas Zapletal wrote:

Hello, what you report is not EUI-64 MAC but 40bytes infiniband MAC. Anyway, we don't support/test any of these, however ISC DHCP does appear to support that. Our conf parser however assumes only EUI-48 MAC addresses, I will fix that, apply that patch and let me know if that helps.

Thank you Lukas. I guess I can't count! Anyway, I have applied your patch and DHCP records with InfiniBand MACs are now picked up and I can re-build those hosts as expected now. Thank you again; I appreciate your work and also how quickly you addressed this bug.

#4 Updated by The Foreman Bot about 1 year ago

  • Fixed in Releases 1.24.0 added

#5 Updated by Anonymous about 1 year ago

  • Status changed from Ready For Testing to Closed

Also available in: Atom PDF