Content-Type: application/json; charset=utf-8
Vary: Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With
Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Content-Security-Policy: default-src 'none'
X-Ratelimit-Reset: 1769189499
X-Ratelimit-Resource: core
Etag: W/"ed7ff15fd20853d181507588a8f6671a3f5f71f80578be1f45d7f6ecd077d147"
Access-Control-Allow-Origin: *
X-Frame-Options: deny
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
X-Ratelimit-Limit: 5000
X-Github-Api-Version-Selected: 2022-11-28
X-Content-Type-Options: nosniff
X-Xss-Protection: 0
X-Ratelimit-Remaining: 4997
X-Ratelimit-Used: 3
Cache-Control: private, max-age=60, s-maxage=60
X-Github-Media-Type: github.v3; param=squirrel-girl-preview
Link: <https://api.github.com/repositories/68390476/issues?after=Y3Vyc29yOnYyOpLPAAABgogj3SDOT44Tug%3D%3D&direction=asc&per_page=45&sort=created&state=all>; rel="next", <https://api.github.com/repositories/68390476/issues?direction=asc&per_page=45&sort=created&state=all&before=Y3Vyc29yOnYyOpLPAAABakvt5PjOGgKiSA%3D%3D>; rel="prev"
X-Accepted-Github-Permissions: issues=read
X-Github-Request-Id: 545E:1E338F:1CE43FC:19966FB:6973A26C

[{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/47","id":436380232,"node_id":"MDU6SXNzdWU0MzYzODAyMzI=","number":47,"title":"missing /etc/services -> test09 timeout ","user":{"login":"danielmotaleite","id":11890049,"node_id":"MDQ6VXNlcjExODkwMDQ5","avatar_url":"https://avatars.githubusercontent.com/u/11890049?v=4","gravatar_id":"","url":"https://api.github.com/users/danielmotaleite","html_url":"https://github.com/danielmotaleite","followers_url":"https://api.github.com/users/danielmotaleite/followers","following_url":"https://api.github.com/users/danielmotaleite/following{/other_user}","gists_url":"https://api.github.com/users/danielmotaleite/gists{/gist_id}","starred_url":"https://api.github.com/users/danielmotaleite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielmotaleite/subscriptions","organizations_url":"https://api.github.com/users/danielmotaleite/orgs","repos_url":"https://api.github.com/users/danielmotaleite/repos","events_url":"https://api.github.com/users/danielmotaleite/events{/privacy}","received_events_url":"https://api.github.com/users/danielmotaleite/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-04-23T20:40:43Z","updated_at":"2019-04-27T09:43:12Z","closed_at":"2019-04-27T09:43:12Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I'm building the master vs varnish 6.2.0 inside a debian based docker and when running the tests, test09 fails with the error below.\r\n\r\n        **** v1    0.6 vsl|          0 Error           - vmod-dynamic: vcl1 d4 127.0.0.1:http getaddrinfo -8 (Servname not supported for ai_socktype)\r\n\r\nAs i noticed the `:http` port, i went to check the container /etc/services and it didn't existed. Creating it fixed the problem.\r\n\r\nSo probably it would be better to use a number instead of port name, so this do not happen to other people trying to build this inside a container \r\n\r\nThanks\r\n\r\nfull error log:\r\n\r\n```\r\n===============================================\r\n   libvmod-dynamic trunk: src/test-suite.log\r\n===============================================\r\n\r\n# TOTAL: 14\r\n# PASS:  13\r\n# SKIP:  0\r\n# XFAIL: 0\r\n# FAIL:  1\r\n# XPASS: 0\r\n# ERROR: 0\r\n\r\n.. contents:: :depth: 2\r\n\r\nFAIL: tests/test09\r\n==================\r\n\r\n*    top   0.0 TEST ./tests/test09.vtc starting\r\n**** top   0.0 extmacro def pwd=/usr/src/libvmod-dynamic/src\r\n**** top   0.0 extmacro def vmod_dynamic=dynamic from \"/usr/src/libvmod-dynamic/src/.libs/libvmod_dynamic.so\"\r\n**** top   0.0 extmacro def localhost=127.0.0.1\r\n**** top   0.0 extmacro def bad_backend=127.0.0.1 33485\r\n**** top   0.0 extmacro def bad_ip=192.0.2.255\r\n**** top   0.0 macro def testdir=/usr/src/libvmod-dynamic/src/./tests\r\n**** top   0.0 macro def tmpdir=/tmp/vtc.18162.680e3a26\r\n**   top   0.0 === varnishtest \"Ipv4- or IPv6-only\"\r\n*    top   0.0 VTEST Ipv4- or IPv6-only\r\n**   top   0.0 === shell \"getent hosts localhost www.localhost img.localhost ||...\r\n**** top   0.0 shell_cmd|exec 2>&1 ; getent hosts localhost www.localhost img.localhost || true\r\n**** top   0.0 shell_out|::1             localhost ip6-localhost ip6-loopback\r\n**** top   0.0 shell_out|127.0.0.1       www.localhost img.localhost\r\n**** top   0.0 shell_out|127.0.0.1       www.localhost img.localhost\r\n**** top   0.0 shell_status = 0x0000\r\n**   top   0.0 === server s1 { } -start\r\n**   s1    0.0 Starting server\r\n**** s1    0.0 macro def s1_addr=127.0.0.1\r\n**** s1    0.0 macro def s1_port=41365\r\n**** s1    0.0 macro def s1_sock=127.0.0.1 41365\r\n*    s1    0.0 Listen on 127.0.0.1 41365\r\n**   top   0.0 === varnish v1 -vcl+backend {\r\n**   s1    0.0 Started on 127.0.0.1 41365 (1 iterations)\r\n**   v1    0.0 Launch\r\n***  v1    0.0 CMD: cd ${pwd} && exec varnishd  -d -n /tmp/vtc.18162.680e3a26/v1 -l 2m -p auto_restart=off -p syslog_cli_traffic=off -p sigsegv_handler=on -p thread_pool_min=10 -p debug=+vtc_mode -a '127.0.0.1:0' -M '127.0.0.1 34053' -P /tmp/vtc.18162.680e3a26/v1/varnishd.pid \r\n***  v1    0.0 CMD: cd /usr/src/libvmod-dynamic/src && exec varnishd  -d -n /tmp/vtc.18162.680e3a26/v1 -l 2m -p auto_restart=off -p syslog_cli_traffic=off -p sigsegv_handler=on -p thread_pool_min=10 -p debug=+vtc_mode -a '127.0.0.1:0' -M '127.0.0.1 34053' -P /tmp/vtc.18162.680e3a26/v1/varnishd.pid \r\n***  v1    0.0 PID: 18170\r\n**** v1    0.0 macro def v1_pid=18170\r\n**** v1    0.0 macro def v1_name=/tmp/vtc.18162.680e3a26/v1\r\n***  v1    0.0 debug|Debug: Version: varnish-6.2.0 revision b14a3d38dbe918ad50d3838b11aa596f42179b54\r\n***  v1    0.0 debug|Debug: Platform: Linux,5.0.9-050009-generic,x86_64,-junix,-sdefault,-sdefault,-hcritbit\r\n***  v1    0.0 debug|200 321     \r\n***  v1    0.0 debug|-----------------------------\r\n***  v1    0.0 debug|Varnish Cache CLI 1.0\r\n***  v1    0.0 debug|-----------------------------\r\n***  v1    0.0 debug|Linux,5.0.9-050009-generic,x86_64,-junix,-sdefault,-sdefault,-hcritbit\r\n***  v1    0.0 debug|varnish-6.2.0 revision b14a3d38dbe918ad50d3838b11aa596f42179b54\r\n***  v1    0.0 debug|\r\n***  v1    0.0 debug|Type 'help' for command list.\r\n***  v1    0.0 debug|Type 'quit' to close CLI session.\r\n***  v1    0.0 debug|Type 'start' to launch worker process.\r\n***  v1    0.0 debug|\r\n**** v1    0.1 CLIPOLL 1 0x1 0x0\r\n***  v1    0.1 CLI connection fd = 7\r\n***  v1    0.1 CLI RX  107\r\n**** v1    0.1 CLI RX|sxjzgcofjaexybfaeanoudglalzrweqs\r\n**** v1    0.1 CLI RX|\r\n**** v1    0.1 CLI RX|Authentication required.\r\n**** v1    0.1 CLI TX|auth a484337cbdcd04a8fb8f97602334132d9decb95eb024cba29c416958fc4e114e\r\n***  v1    0.1 CLI RX  200\r\n**** v1    0.1 CLI RX|-----------------------------\r\n**** v1    0.1 CLI RX|Varnish Cache CLI 1.0\r\n**** v1    0.1 CLI RX|-----------------------------\r\n**** v1    0.1 CLI RX|Linux,5.0.9-050009-generic,x86_64,-junix,-sdefault,-sdefault,-hcritbit\r\n**** v1    0.1 CLI RX|varnish-6.2.0 revision b14a3d38dbe918ad50d3838b11aa596f42179b54\r\n**** v1    0.1 CLI RX|\r\n**** v1    0.1 CLI RX|Type 'help' for command list.\r\n**** v1    0.1 CLI RX|Type 'quit' to close CLI session.\r\n**** v1    0.1 CLI RX|Type 'start' to launch worker process.\r\n**** v1    0.1 CLI TX|vcl.inline vcl1 << %XJEIFLH|)Xspa8P\r\n**** v1    0.1 CLI TX|vcl 4.1;\r\n**** v1    0.1 CLI TX|backend s1 { .host = \"127.0.0.1\"; .port = \"41365\"; }\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|\\timport dynamic from \"/usr/src/libvmod-dynamic/src/.libs/libvmod_dynamic.so\";\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|\\tacl ipv4_only { \"0.0.0.0\"/0; }\r\n**** v1    0.1 CLI TX|\\tacl ipv6_only { \"::0\"/0; }\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|\\tsub vcl_init {\r\n**** v1    0.1 CLI TX|\\t\\tnew d4 = dynamic.director(whitelist = ipv4_only);\r\n**** v1    0.1 CLI TX|\\t\\tnew d6 = dynamic.director(whitelist = ipv6_only);\r\n**** v1    0.1 CLI TX|\\t}\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|\\tsub vcl_recv {\r\n**** v1    0.1 CLI TX|\\t\\tset req.backend_hint = d4.backend(\"127.0.0.1\");\r\n**** v1    0.1 CLI TX|\\t\\tset req.backend_hint = d4.backend(\"::1\");\r\n**** v1    0.1 CLI TX|\\t\\tset req.backend_hint = d6.backend(\"127.0.0.1\");\r\n**** v1    0.1 CLI TX|\\t\\tset req.backend_hint = d6.backend(\"::1\");\r\n**** v1    0.1 CLI TX|\\t\\treturn (synth(200));\r\n**** v1    0.1 CLI TX|\\t}\r\n**** v1    0.1 CLI TX|\r\n**** v1    0.1 CLI TX|%XJEIFLH|)Xspa8P\r\n***  v1    0.2 vsl|No VSL chunk found (child not started ?)\r\n***  v1    0.3 CLI RX  200\r\n**** v1    0.3 CLI RX|VCL compiled.\r\n**** v1    0.3 CLI TX|vcl.use vcl1\r\n***  v1    0.3 CLI RX  200\r\n**   v1    0.3 Start\r\n**** v1    0.3 CLI TX|start\r\n***  v1    0.3 vsl|No VSL chunk found (child not started ?)\r\n***  v1    0.4 debug|Debug: Child (18184) Started\r\n***  v1    0.4 CLI RX  200\r\n***  v1    0.4 wait-running\r\n**** v1    0.4 CLI TX|status\r\n***  v1    0.4 debug|Info: Child (18184) said Child starts\r\n**** v1    0.4 vsl|          0 CLI             - Rd vcl.load \"vcl1\" vcl_vcl1.1556051154.031158/vgc.so 1auto\r\n**** v1    0.4 vsl|          0 CLI             - Wr 200 52 Loaded \"vcl_vcl1.1556051154.031158/vgc.so\" as \"vcl1\"\r\n**** v1    0.4 vsl|          0 CLI             - Rd vcl.use \"vcl1\"\r\n**** v1    0.4 vsl|          0 CLI             - Wr 200 0 \r\n**** v1    0.4 vsl|          0 CLI             - Rd start\r\n**** v1    0.4 vsl|          0 CLI             - Wr 200 0 \r\n***  v1    0.4 CLI RX  200\r\n**** v1    0.4 CLI RX|Child in state running\r\n**** v1    0.4 CLI TX|debug.listen_address\r\n***  v1    0.5 CLI RX  200\r\n**** v1    0.5 CLI RX|127.0.0.1 46781\r\n**** v1    0.5 CLI TX|debug.xid 999\r\n***  v1    0.5 CLI RX  200\r\n**** v1    0.5 CLI RX|XID is 999\r\n**** v1    0.5 CLI TX|debug.listen_address\r\n**** v1    0.5 vsl|          0 CLI             - Rd debug.listen_address \r\n**** v1    0.5 vsl|          0 CLI             - Wr 200 16 127.0.0.1 46781\r\n\r\n**** v1    0.5 vsl|          0 CLI             - Rd debug.xid 999 \r\n**** v1    0.5 vsl|          0 CLI             - Wr 200 10 XID is 999\r\n***  v1    0.6 CLI RX  200\r\n**** v1    0.6 CLI RX|127.0.0.1 46781\r\n**   v1    0.6 Listen on 127.0.0.1 46781\r\n**** v1    0.6 macro def v1_addr=127.0.0.1\r\n**** v1    0.6 macro def v1_port=46781\r\n**** v1    0.6 macro def v1_sock=127.0.0.1 46781\r\n**   top   0.6 === logexpect l4 -v v1 -g raw {expect * 0 Error \"d4 ::1:http acl...\r\n**   l4    0.6 === expect * 0 Error \"d4 ::1:http acl-mismatch\"\r\n**   top   0.6 === logexpect l6 -v v1 -g raw {expect * 0 Error \"d6 127.0.0.1:ht...\r\n**** l4    0.6 begin|\r\n***  l4    0.6 expecting| expect * 0 Error d4 ::1:http acl-mismatch\r\n**   l6    0.6 === expect * 0 Error \"d6 127.0.0.1:http acl-mismatch\"\r\n**   top   0.6 === client c1 {\r\n**   c1    0.6 Starting client\r\n**   c1    0.6 Waiting for client\r\n**** l6    0.6 begin|\r\n***  l6    0.6 expecting| expect * 0 Error d6 127.0.0.1:http acl-mismatch\r\n***  c1    0.6 Connect to 127.0.0.1 46781\r\n***  c1    0.6 connected fd 27 from 127.0.0.1 53442 to 127.0.0.1 46781\r\n**   c1    0.6 === txreq\r\n**** c1    0.6 txreq|GET / HTTP/1.1\\r\r\n**** c1    0.6 txreq|Host: 127.0.0.1\\r\r\n**** c1    0.6 txreq|\\r\r\n**   c1    0.6 === rxresp\r\n**** c1    0.6 rxhdr|HTTP/1.1 200 OK\\r\r\n**** c1    0.6 rxhdr|Date: Tue, 23 Apr 2019 20:25:54 GMT\\r\r\n**** c1    0.6 rxhdr|Server: Varnish\\r\r\n**** c1    0.6 rxhdr|X-Varnish: 1001\\r\r\n**** c1    0.6 rxhdr|Content-Type: text/html; charset=utf-8\\r\r\n**** c1    0.6 rxhdr|Retry-After: 5\\r\r\n**** c1    0.6 rxhdr|Content-Length: 227\\r\r\n**** c1    0.6 rxhdr|Accept-Ranges: bytes\\r\r\n**** c1    0.6 rxhdr|Connection: keep-alive\\r\r\n**** c1    0.6 rxhdr|\\r\r\n**** c1    0.6 rxhdrlen = 213\r\n**** c1    0.6 http[ 0] |HTTP/1.1\r\n**** c1    0.6 http[ 1] |200\r\n**** c1    0.6 http[ 2] |OK\r\n**** c1    0.6 http[ 3] |Date: Tue, 23 Apr 2019 20:25:54 GMT\r\n**** c1    0.6 http[ 4] |Server: Varnish\r\n**** c1    0.6 http[ 5] |X-Varnish: 1001\r\n**** c1    0.6 http[ 6] |Content-Type: text/html; charset=utf-8\r\n**** c1    0.6 http[ 7] |Retry-After: 5\r\n**** c1    0.6 http[ 8] |Content-Length: 227\r\n**** c1    0.6 http[ 9] |Accept-Ranges: bytes\r\n**** c1    0.6 http[10] |Connection: keep-alive\r\n**** c1    0.6 c-l|<!DOCTYPE html>\r\n**** c1    0.6 c-l|<html>\r\n**** c1    0.6 c-l|  <head>\r\n**** c1    0.6 c-l|    <title>200 OK</title>\r\n**** c1    0.6 c-l|  </head>\r\n**** c1    0.6 c-l|  <body>\r\n**** c1    0.6 c-l|    <h1>Error 200 OK</h1>\r\n**** c1    0.6 c-l|    <p>OK</p>\r\n**** c1    0.6 c-l|    <h3>Guru Meditation:</h3>\r\n**** c1    0.6 c-l|    <p>XID: 1001</p>\r\n**** c1    0.6 c-l|    <hr>\r\n**** c1    0.6 c-l|    <p>Varnish cache server</p>\r\n**** c1    0.6 c-l|  </body>\r\n**** c1    0.6 c-l|</html>\r\n**** c1    0.6 bodylen = 227\r\n**   c1    0.6 === expect resp.status == 200\r\n**** c1    0.6 EXPECT resp.status (200) == \"200\" match\r\n***  c1    0.6 closing fd 27\r\n**   c1    0.6 Ending\r\n**   top   0.6 === logexpect l4 -wait\r\n**   l4    0.6 Waiting for logexp\r\n**** v1    0.6 vsl|          0 CLI             - Rd debug.listen_address \r\n**** v1    0.6 vsl|          0 CLI             - Wr 200 16 127.0.0.1 46781\r\n\r\n**** v1    0.6 vsl|       1000 Begin           c sess 0 HTTP/1\r\n**** v1    0.6 vsl|       1000 SessOpen        c 127.0.0.1 53442 a0 127.0.0.1 46781 1556051154.473491 19\r\n**** v1    0.6 vsl|       1000 Link            c req 1001 rxreq\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d4(127.0.0.1:http) Lookup: 1556051154.473908 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d4(::1:http) Lookup: 1556051154.474028 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d6(127.0.0.1:http) Lookup: 1556051154.474126 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d6(::1:http) Lookup: 1556051154.474199 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d4(::1:http) Results: 1556051154.475055 0.001027 0.001027\r\n**** v1    0.6 vsl|          0 Error           - vmod-dynamic: vcl1 d4 ::1:http getaddrinfo -8 (Servname not supported for ai_socktype)\r\n**** v1    0.6 vsl|       1001 Begin           c req 1000 rxreq\r\n**** v1    0.6 vsl|       1001 Timestamp       c Start: 1556051154.473606 0.000000 0.000000\r\n**** v1    0.6 vsl|       1001 Timestamp       c Req: 1556051154.473606 0.000000 0.000000\r\n**** v1    0.6 vsl|       1001 VCL_use         c vcl1\r\n**** v1    0.6 vsl|       1001 ReqStart        c 127.0.0.1 53442 a0\r\n**** v1    0.6 vsl|       1001 ReqMethod       c GET\r\n**** v1    0.6 vsl|       1001 ReqURL          c /\r\n**** v1    0.6 vsl|       1001 ReqProtocol     c HTTP/1.1\r\n**** v1    0.6 vsl|       1001 ReqHeader       c Host: 127.0.0.1\r\n**** v1    0.6 vsl|       1001 ReqHeader       c X-Forwarded-For: 127.0.0.1\r\n**** v1    0.6 vsl|       1001 VCL_call        c RECV\r\n**** v1    0.6 vsl|       1001 VCL_return      c synth\r\n**** v1    0.6 vsl|       1001 VCL_call        c HASH\r\n**** v1    0.6 vsl|       1001 VCL_return      c lookup\r\n**** v1    0.6 vsl|       1001 Timestamp       c Process: 1556051154.474159 0.000553 0.000553\r\n**** v1    0.6 vsl|       1001 RespHeader      c Date: Tue, 23 Apr 2019 20:25:54 GMT\r\n**** v1    0.6 vsl|       1001 RespHeader      c Server: Varnish\r\n**** v1    0.6 vsl|       1001 RespHeader      c X-Varnish: 1001\r\n**** v1    0.6 vsl|       1001 RespProtocol    c HTTP/1.1\r\n**** v1    0.6 vsl|       1001 RespStatus      c 200\r\n**** v1    0.6 vsl|       1001 RespReason      c OK\r\n**** v1    0.6 vsl|       1001 RespReason      c OK\r\n**** v1    0.6 vsl|       1001 VCL_call        c SYNTH\r\n**** v1    0.6 vsl|       1001 RespHeader      c Content-Type: text/html; charset=utf-8\r\n**** v1    0.6 vsl|       1001 RespHeader      c Retry-After: 5\r\n**** v1    0.6 vsl|       1001 VCL_return      c deliver\r\n**** v1    0.6 vsl|       1001 RespHeader      c Content-Length: 227\r\n**** v1    0.6 vsl|       1001 Storage         c malloc Transient\r\n**** v1    0.6 vsl|       1001 Filters         c \r\n**** v1    0.6 vsl|       1001 RespHeader      c Accept-Ranges: bytes\r\n**** v1    0.6 vsl|       1001 RespHeader      c Connection: keep-alive\r\n**** v1    0.6 vsl|       1001 Timestamp       c Resp: 1556051154.475164 0.001558 0.001005\r\n**** v1    0.6 vsl|       1001 ReqAcct         c 35 0 35 213 227 440\r\n**** v1    0.6 vsl|       1001 End             c \r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d4(127.0.0.1:http) Results: 1556051154.475189 0.001281 0.001281\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d6(127.0.0.1:http) Results: 1556051154.475199 0.001073 0.001073\r\n**** v1    0.6 vsl|          0 Error           - vmod-dynamic: vcl1 d4 127.0.0.1:http getaddrinfo -8 (Servname not supported for ai_socktype)\r\n**** v1    0.6 vsl|          0 Error           - vmod-dynamic: vcl1 d6 127.0.0.1:http getaddrinfo -8 (Servname not supported for ai_socktype)\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d6(::1:http) Results: 1556051154.475218 0.001018 0.001018\r\n**** v1    0.6 vsl|          0 Error           - vmod-dynamic: vcl1 d6 ::1:http getaddrinfo -8 (Servname not supported for ai_socktype)\r\n**** v1    0.6 vsl|       1000 SessClose       c REM_CLOSE 0.003\r\n**** v1    0.6 vsl|       1000 End             c \r\n**** v1    3.4 vsl|          0 CLI             - Rd ping\r\n**** v1    3.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051157 1.0\r\n**** v1    6.4 vsl|          0 CLI             - Rd ping\r\n**** v1    6.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051160 1.0\r\n**** v1    9.4 vsl|          0 CLI             - Rd ping\r\n**** v1    9.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051163 1.0\r\n**** v1   12.5 vsl|          0 CLI             - Rd ping\r\n**** v1   12.5 vsl|          0 CLI             - Wr 200 19 PONG 1556051166 1.0\r\n**** v1   15.5 vsl|          0 CLI             - Rd ping\r\n**** v1   15.5 vsl|          0 CLI             - Wr 200 19 PONG 1556051169 1.0\r\n**** v1   18.5 vsl|          0 CLI             - Rd ping\r\n**** v1   18.5 vsl|          0 CLI             - Wr 200 19 PONG 1556051172 1.0\r\n**** v1   21.4 vsl|          0 CLI             - Rd ping\r\n**** v1   21.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051175 1.0\r\n**** v1   24.4 vsl|          0 CLI             - Rd ping\r\n**** v1   24.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051178 1.0\r\n**** v1   27.4 vsl|          0 CLI             - Rd ping\r\n**** v1   27.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051181 1.0\r\n**** v1   30.4 vsl|          0 CLI             - Rd ping\r\n**** v1   30.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051184 1.0\r\n**** v1   33.4 vsl|          0 CLI             - Rd ping\r\n**** v1   33.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051187 1.0\r\n**** v1   36.4 vsl|          0 CLI             - Rd ping\r\n**** v1   36.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051190 1.0\r\n**** v1   39.4 vsl|          0 CLI             - Rd ping\r\n**** v1   39.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051193 1.0\r\n**** v1   42.4 vsl|          0 CLI             - Rd ping\r\n**** v1   42.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051196 1.0\r\n**** v1   45.4 vsl|          0 CLI             - Rd ping\r\n**** v1   45.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051199 1.0\r\n**** v1   48.4 vsl|          0 CLI             - Rd ping\r\n**** v1   48.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051202 1.0\r\n**** v1   51.4 vsl|          0 CLI             - Rd ping\r\n**** v1   51.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051205 1.0\r\n**** v1   54.4 vsl|          0 CLI             - Rd ping\r\n**** v1   54.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051208 1.0\r\n**** v1   57.4 vsl|          0 CLI             - Rd ping\r\n**** v1   57.4 vsl|          0 CLI             - Wr 200 19 PONG 1556051211 1.0\r\n#    top  TEST ./tests/test09.vtc TIMED OUT (kill -9)\r\n#    top  TEST ./tests/test09.vtc FAILED (60.061) signal=9\r\nFAIL tests/test09.vtc (exit status: 2)\r\n\r\n============================================================================\r\nTestsuite summary for libvmod-dynamic trunk\r\n============================================================================\r\n# TOTAL: 14\r\n# PASS:  13\r\n# SKIP:  0\r\n# XFAIL: 0\r\n# FAIL:  1\r\n# XPASS: 0\r\n# ERROR: 0\r\n============================================================================\r\nSee src/test-suite.log\r\n============================================================================\r\n\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/47/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/48","id":468740958,"node_id":"MDU6SXNzdWU0Njg3NDA5NTg=","number":48,"title":"Compile error in varnish 6.0.1-1~stretch","user":{"login":"razvanphp","id":4599319,"node_id":"MDQ6VXNlcjQ1OTkzMTk=","avatar_url":"https://avatars.githubusercontent.com/u/4599319?v=4","gravatar_id":"","url":"https://api.github.com/users/razvanphp","html_url":"https://github.com/razvanphp","followers_url":"https://api.github.com/users/razvanphp/followers","following_url":"https://api.github.com/users/razvanphp/following{/other_user}","gists_url":"https://api.github.com/users/razvanphp/gists{/gist_id}","starred_url":"https://api.github.com/users/razvanphp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/razvanphp/subscriptions","organizations_url":"https://api.github.com/users/razvanphp/orgs","repos_url":"https://api.github.com/users/razvanphp/repos","events_url":"https://api.github.com/users/razvanphp/events{/privacy}","received_events_url":"https://api.github.com/users/razvanphp/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2019-07-16T16:05:31Z","updated_at":"2019-07-25T10:01:07Z","closed_at":"2019-07-17T09:56:52Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"We are using tag 6.0, where you backported some refactorings and we are now getting the following error:\r\n\r\n```\r\nIn file included from vmod_dynamic.c:56:0:\r\nvmod_dynamic.h:88:2: error: unknown type name ‘vtim_real’\r\n  vtim_real   deadline;\r\n  ^~~~~~~~~\r\nvmod_dynamic.h:137:2: error: unknown type name ‘vtim_real’\r\n  vtim_real   deadline;\r\n  ^~~~~~~~~\r\nvmod_dynamic.c:410:17: error: unknown type name ‘vtim_real’\r\n     void *priv, vtim_real now)\r\n                 ^~~~~~~~~\r\nvmod_dynamic.c: In function ‘dynamic_lookup_thread’:\r\nvmod_dynamic.c:474:2: error: unknown type name ‘vtim_real’\r\n  vtim_real lookup, results, update;\r\n  ^~~~~~~~~\r\nvmod_dynamic.c:498:4: error: implicit declaration of function ‘dynamic_update_domain’ [-Werror=implicit-function-declaration]\r\n    dynamic_update_domain(dom, res, res_priv, results);\r\n    ^~~~~~~~~~~~~~~~~~~~~\r\nAt top level:\r\nvmod_dynamic.c:311:1: error: ‘dynamic_add’ defined but not used [-Werror=unused-function]\r\n dynamic_add(VRT_CTX, struct dynamic_domain *dom, const struct res_info *info)\r\n ^~~~~~~~~~~\r\ncc1: all warnings being treated as errors\r\nmake[2]: *** [vmod_dynamic.lo] Error 1\r\nmake[1]: ***\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/48/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/49","id":472708206,"node_id":"MDU6SXNzdWU0NzI3MDgyMDY=","number":49,"title":"compilation issue for 6.0.3","user":{"login":"darjisanket","id":28775672,"node_id":"MDQ6VXNlcjI4Nzc1Njcy","avatar_url":"https://avatars.githubusercontent.com/u/28775672?v=4","gravatar_id":"","url":"https://api.github.com/users/darjisanket","html_url":"https://github.com/darjisanket","followers_url":"https://api.github.com/users/darjisanket/followers","following_url":"https://api.github.com/users/darjisanket/following{/other_user}","gists_url":"https://api.github.com/users/darjisanket/gists{/gist_id}","starred_url":"https://api.github.com/users/darjisanket/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darjisanket/subscriptions","organizations_url":"https://api.github.com/users/darjisanket/orgs","repos_url":"https://api.github.com/users/darjisanket/repos","events_url":"https://api.github.com/users/darjisanket/events{/privacy}","received_events_url":"https://api.github.com/users/darjisanket/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2019-07-25T07:27:49Z","updated_at":"2019-07-25T09:45:05Z","closed_at":"2019-07-25T09:45:02Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Thanks for libvmod-dynamic it helps us to scale up/down our environment based on traffic. currently, we are using 4.1 and wanted to move to 6.0.\r\nI am using https://packagecloud.io/varnishcache/varnish60lts repo for varnish.\r\nwhile compiling, I got below compilation issues.\r\n \r\n```\r\n VMODTOOL vcc_dynamic_if.c\r\n  CC       vmod_dynamic.lo\r\n  CC       dyn_resolver_gai.lo\r\n  CC       vmod_dynamic_service.lo\r\nvmod_dynamic_service.c: In function 'service_resolve':\r\nvmod_dynamic_service.c:161:5: error: 'n' may be used uninitialized in this function [-Werror=maybe-uninitialized]\r\n  if (n == 0)\r\n     ^\r\nvmod_dynamic_service.c:166:5: error: 'w' may be used uninitialized in this function [-Werror=maybe-uninitialized]\r\n  if (w == 0) {\r\n     ^\r\ncc1: all warnings being treated as errors\r\nmake[2]: Leaving directory `/usr/redsky/src/libvmod-dynamic/src'\r\nmake[2]: *** [vmod_dynamic_service.lo] Error 1\r\nmake[1]: *** [all-recursive] Error 1\r\nmake[1]: Leaving directory `/usr/redsky/src/libvmod-dynamic'\r\nmake: *** [all] Error 2\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/49/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/50","id":484121184,"node_id":"MDExOlB1bGxSZXF1ZXN0MzEwMDY2MDM2","number":50,"title":"Add missing headers when building under FreeBSD + FreeBSD installation instructions","user":{"login":"zi0r","id":1676702,"node_id":"MDQ6VXNlcjE2NzY3MDI=","avatar_url":"https://avatars.githubusercontent.com/u/1676702?v=4","gravatar_id":"","url":"https://api.github.com/users/zi0r","html_url":"https://github.com/zi0r","followers_url":"https://api.github.com/users/zi0r/followers","following_url":"https://api.github.com/users/zi0r/following{/other_user}","gists_url":"https://api.github.com/users/zi0r/gists{/gist_id}","starred_url":"https://api.github.com/users/zi0r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zi0r/subscriptions","organizations_url":"https://api.github.com/users/zi0r/orgs","repos_url":"https://api.github.com/users/zi0r/repos","events_url":"https://api.github.com/users/zi0r/events{/privacy}","received_events_url":"https://api.github.com/users/zi0r/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-08-22T17:29:30Z","updated_at":"2019-08-23T07:54:20Z","closed_at":"2019-08-23T07:54:16Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/50","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/50","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/50.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/50.patch","merged_at":"2019-08-23T07:54:16Z"},"body":"Currently fails to build under FreeBSD 11.3 without these includes.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/50/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/51","id":503980746,"node_id":"MDU6SXNzdWU1MDM5ODA3NDY=","number":51,"title":"vmod-dynamic accepts port=0 which causes segfault","user":{"login":"lukaszlach","id":5011490,"node_id":"MDQ6VXNlcjUwMTE0OTA=","avatar_url":"https://avatars.githubusercontent.com/u/5011490?v=4","gravatar_id":"","url":"https://api.github.com/users/lukaszlach","html_url":"https://github.com/lukaszlach","followers_url":"https://api.github.com/users/lukaszlach/followers","following_url":"https://api.github.com/users/lukaszlach/following{/other_user}","gists_url":"https://api.github.com/users/lukaszlach/gists{/gist_id}","starred_url":"https://api.github.com/users/lukaszlach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukaszlach/subscriptions","organizations_url":"https://api.github.com/users/lukaszlach/orgs","repos_url":"https://api.github.com/users/lukaszlach/repos","events_url":"https://api.github.com/users/lukaszlach/events{/privacy}","received_events_url":"https://api.github.com/users/lukaszlach/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":null,"comments":1,"created_at":"2019-10-08T11:13:28Z","updated_at":"2019-10-10T12:11:38Z","closed_at":"2019-10-10T12:11:38Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"If you define a service (for example in Consul) and do not provide the port number, SRV records return value of `0`. When vmod-dynamic tries to load such backend Varnish crashes with:\r\n\r\n```\r\nChild (24198) Panic at: Tue, 08 Oct 2019 10:45:17 GMT Wrong turn at mgt/mgt_child.c:287: Signal 11 (Segmentation fault) received at 0x10 si_code 1 version = varnish-5.2.0 revision 4c4875cbf, vrt api = 6.1 ident = Linux,3.16.0-6-amd64,x86_64,-junix,-smalloc,-smalloc,-hcritbit,epoll now = 19962215.563448 (mono), 1570531516.494987 (real)\r\n```\r\n\r\nThe issue is on this line:\r\nhttps://github.com/nigoroll/libvmod-dynamic/blob/master/src/dyn_resolver_getdns.c#L386\r\n\r\nThe internal discussion I have had about this issue ended with conslusion that if the port returned in SRV is invalid (`<= 0`), vmod should just ignore it and no try to fix it with hardcoded port `80`.\r\n","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/51/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/52","id":559811795,"node_id":"MDU6SXNzdWU1NTk4MTE3OTU=","number":52,"title":"Varnish stopped processing requests - threads waiting on vcl_mtx lock","user":{"login":"jpastuszek","id":20052,"node_id":"MDQ6VXNlcjIwMDUy","avatar_url":"https://avatars.githubusercontent.com/u/20052?v=4","gravatar_id":"","url":"https://api.github.com/users/jpastuszek","html_url":"https://github.com/jpastuszek","followers_url":"https://api.github.com/users/jpastuszek/followers","following_url":"https://api.github.com/users/jpastuszek/following{/other_user}","gists_url":"https://api.github.com/users/jpastuszek/gists{/gist_id}","starred_url":"https://api.github.com/users/jpastuszek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpastuszek/subscriptions","organizations_url":"https://api.github.com/users/jpastuszek/orgs","repos_url":"https://api.github.com/users/jpastuszek/repos","events_url":"https://api.github.com/users/jpastuszek/events{/privacy}","received_events_url":"https://api.github.com/users/jpastuszek/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2228316027,"node_id":"MDU6TGFiZWwyMjI4MzE2MDI3","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20varnish-cache","name":"needs varnish-cache","color":"006b75","default":false,"description":"needs work in varnish-cache"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2020-02-04T15:54:47Z","updated_at":"2020-12-16T15:11:19Z","closed_at":"2020-12-16T15:11:19Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I think this was caused by a deadlock related to VMOD `dynamic` and `varnishadm` utility with Varnish v6.3 (patched).\r\n\r\nI am using VMOD dynamic with a backend that keeps rotating its IP addresses frequently. Also I monitor Varnish with a script calling `varnishadm backend.list` every few minutes.\r\n\r\nI was able to obtain a stack trace after Varnish stopped processing requests and before it got auto-restarted by manager (CLI timeout).\r\n\r\nAs far as I can tell from the trace, request processing threads got stuck on `Lck_Lock(&vcl_mtx);` call.\r\n\r\nI found two outstanding threads also involved in locking:\r\n\r\nWhat I suspect a thread running from VMOD dynamic calling into `dynamic_lookup_thread` function:\r\n```\r\n  #3  0x0000000000437e4f in Lck__Lock (lck=<optimized out>, p=p@entry=0x4c6800 <__func__.9352> \"VRT_AddDirector\", l=l@entry=192) at cache/cache_lck.c:120\r\n  #4  0x000000000045acb7 in VRT_AddDirector (ctx=ctx@entry=0x7fc5bdf01d80, m=m@entry=0x4b6980 <vbe_methods_noprobe>, priv=priv@entry=0x7fc5da5b1080, fmt=fmt@entry=0x4c1fe4 \"%s\") at cache/cache_vrt_vcl.c:192\r\n\t[WAITING A] Lck_Lock(&vcl_mtx); https://github.com/varnishcache/varnish-cache/blob/0e192d6fa1691ebe9a4a3dcb600579cd43a0c1ba/bin/varnishd/cache/cache_vrt_vcl.c#L199\r\n  #5  0x000000000041aac7 in VRT_new_backend_clustered (ctx=0x7fc5bdf01d80, vc=<optimized out>, vrt=0x7fc5bdf01e10) at cache/cache_backend.c:601\r\n\tcalled by VRT_new_backend\r\n\tsrc/vmod_dynamic.c:405 VRT_new_backend <- (dynamic_add <- dynamic_update_domain <- dynamic_lookup_thread)\r\n  dynamic_update_domain:\r\n    [LOCKED B] Lck_Lock(&dom->mtx); https://github.com/nigoroll/libvmod-dynamic/blob/71820eb7f91ad7e87755d02e522893a9e12dd55b/src/vmod_dynamic.c#L432\r\n  #6  0x00007fc62c574550 in ?? ()\r\n  #7  0x00007fc5ee1caa40 in ?? ()\r\n  #8  0x00007fc62c579f3f in ?? ()\r\n  #9  0x00007fc5bdf01ed0 in ?? ()\r\n  #10 0x00007fc62c573cdc in ?? ()\r\n  #11 0x500000024b1e9335 in ?? ()\r\n  #12 0x000000001736c622 in ?? ()\r\n  #13 0x0000000000000000 in ?? ()\r\n```\r\n\r\nWhat I suspect a thread running in response to `varnishadm backend.list` command calling `cli_backend_list` function:\r\n```\r\n  #3  0x0000000000437e4f in Lck__Lock (lck=<optimized out>, p=<optimized out>, l=<optimized out>) at cache/cache_lck.c:120\r\n\tdynamic_healthy\r\n\t[WAITING B] Lck_Lock(&dom->mtx); https://github.com/nigoroll/libvmod-dynamic/blob/71820eb7f91ad7e87755d02e522893a9e12dd55b/src/vmod_dynamic.c#L180\r\n  #4  0x00007fc62c5733e8 in ?? ()\r\n  #5  0x00007ffed88ef710 in ?? ()\r\n  #6  0x00007fd104c68cdd in __GI___clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115\r\n  #7  0x00000000004ad83e in VTIM_real () at vtim.c:152\r\n  #8  0x00007fd104027210 in ?? ()\r\n  #9  0x00000000004238f0 in ?? () at cache/cache_director.c:224\r\n  #10 0x0000000000423a66 in cli_health (d=0x7fc5df8584e0, ctx=<optimized out>) at cache/cache_director.c:308\r\n  #11 do_list (cli=<optimized out>, d=0x7fc5df8584e0, priv=0x0) at cache/cache_director.c:335\r\n  #12 0x000000000044c90c in vcl_iterdir (cli=cli@entry=0x7fd104027210, pat=0x7fc5e41cb880 \"default_reload_20200128_101739.*\", func=0x7fc5df8584f8, func@entry=0x4238f0 <do_list>, priv=priv@entry=0x7ffed88ef710, vcl=0x7fc5db2fbaa0) at cache/cache_vcl.c:275\r\n\t[LOCKED A] Lck_Lock(&vcl_mtx); https://github.com/varnishcache/varnish-cache/blob/0e192d6fa1691ebe9a4a3dcb600579cd43a0c1ba/bin/varnishd/cache/cache_vcl.c#L342\r\n  #13 0x000000000044df13 in VCL_IterDirector (cli=cli@entry=0x7fd104027210, pat=<optimized out>, func=func@entry=0x4238f0 <do_list>, priv=priv@entry=0x7ffed88ef710) at cache/cache_vcl.c:310\r\n  #14 0x000000000042328d in cli_backend_list (cli=0x7fd104027210, av=0x7fd10401d980, priv=<optimized out>) at cache/cache_director.c:439\r\n```\r\n\r\nUnfortunately the traces from VMOD are missing symbol names even though I have debug symbols installed (dynamic loading?). So what is following is a bit of a guess work.\r\n\r\nThe `cli_backend_list` call, before it can iterate backend list, acquires the `vcl_mtx` lock (https://github.com/varnishcache/varnish-cache/blob/0e192d6fa1691ebe9a4a3dcb600579cd43a0c1ba/bin/varnishd/cache/cache_vcl.c#L342), next it asks each backend for health status (for the listing) via `VRT_Healthy`, this call is forwarded to VMOD dynamic which firstly tries to acquire `dom->mtx` lock (https://github.com/nigoroll/libvmod-dynamic/blob/71820eb7f91ad7e87755d02e522893a9e12dd55b/src/vmod_dynamic.c#L180) before it can iterate dynamic sub-directors to enquire for their status.\r\nNow at the same time `dynamic_lookup_thread` wakes up to update the dynamic sub-director list from DNS results: it resolves the domain name in DNS and if IP list differs from last run it will go and acquire `dom->mtx` lock (https://github.com/nigoroll/libvmod-dynamic/blob/71820eb7f91ad7e87755d02e522893a9e12dd55b/src/vmod_dynamic.c#L432) and call into Varnish to add new backend with `VRT_new_backend` call, this call requires `vcl_mtx` locked (https://github.com/varnishcache/varnish-cache/blob/0e192d6fa1691ebe9a4a3dcb600579cd43a0c1ba/bin/varnishd/cache/cache_vrt_vcl.c#L199) for Varnish to be able to add entry to backend list which is held currently by `cli_backend_list` call chain waiting for `dom->mtx` lock leading to ABBA deadlock.\r\n\r\nWhat follows is that any time a request, that requires access to a backend, comes in Varnish will block on `vcl_mtx`.\r\nI suspect this issue has occurred few times before, but I got it mixed up with hangs related to thread scheduling that I got patched up now.\r\n","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/52/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/53","id":580546409,"node_id":"MDU6SXNzdWU1ODA1NDY0MDk=","number":53,"title":"dynamic.director not creating backends","user":{"login":"Raboo","id":1148206,"node_id":"MDQ6VXNlcjExNDgyMDY=","avatar_url":"https://avatars.githubusercontent.com/u/1148206?v=4","gravatar_id":"","url":"https://api.github.com/users/Raboo","html_url":"https://github.com/Raboo","followers_url":"https://api.github.com/users/Raboo/followers","following_url":"https://api.github.com/users/Raboo/following{/other_user}","gists_url":"https://api.github.com/users/Raboo/gists{/gist_id}","starred_url":"https://api.github.com/users/Raboo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Raboo/subscriptions","organizations_url":"https://api.github.com/users/Raboo/orgs","repos_url":"https://api.github.com/users/Raboo/repos","events_url":"https://api.github.com/users/Raboo/events{/privacy}","received_events_url":"https://api.github.com/users/Raboo/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2020-03-13T11:38:44Z","updated_at":"2020-07-24T18:09:48Z","closed_at":"2020-07-24T18:09:47Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi,\r\n\r\nI am trying this vmod (and varnish) for the first time. Is there any helpful soul that can explain why only the dummy backend gets created? Am I missing something in my configuration?\r\n\r\n*opentsdb.service.consul* resolves into two SRV records that points to two nodes with weight and priority 1. TTL from DNS is 0.\r\nHowever I also tested *_test._tcp.vmod-dynamic.uplex.de* and that didn't work either.\r\n\r\n\r\n```\r\nvcl 4.1;\r\nimport dynamic;\r\n\r\nbackend dummy { .host = \"localhost\"; }\r\n\r\nprobe tsdb_probe {\r\n  .url = \"/version\";\r\n  .interval = 5s;\r\n  .timeout = 1s;\r\n  .window = 5;\r\n  .threshold = 3;\r\n  .initial = 3;\r\n}\r\n\r\nsub vcl_init {\r\n  new r = dynamic.resolver();\r\n  new d = dynamic.director(\r\n    resolver = r.use(),\r\n    probe = tsdb_probe,\r\n    ttl = 30s,\r\n    ttl_from = cfg\r\n  );\r\n  d.debug(true);\r\n}\r\n\r\nsub vcl_recv {\r\n  set req.backend_hint = d.service(\"opentsdb.service.consul\");\r\n  set client.identity = regsuball(req.url, \"&(o|ignore|png|json|html|y2?range|y2?label|y2?log|key|nokey)\\b(=[^&]*)?\", \"\");\r\n}\r\n\r\nsub vcl_hash {\r\n  hash_data(regsuball(req.url, \"&ignore\\b(=[^&]*)?\", \"\"));\r\n  if (req.http.host) {\r\n    hash_data(req.http.host);\r\n  } else {\r\n    hash_data(server.ip);\r\n  }\r\n  return (lookup);\r\n}\r\n```\r\n\r\nRunning `backend.list` in varnish debug mode. I get this output, i.e. the dummy backend. No created backend from dynamic.director().\r\n```\r\nbackend.list\r\n200 134\r\nBackend name   Admin      Probe    Health     Last change\r\nboot.dummy     healthy    0/0      healthy    Fri, 13 Mar 2020 02:13:56 GMT\r\n```\r\n\r\nI can add that doing a tcpdump when starting varnish shows me it is not even doing any DNS lookups.\r\n\r\nI tested varnish 6.3.2, but also tried 6.2.3 and 6.0.6.\r\nOn 6.3.2 I ran with libvmod-dynamic commit 71820eb7f91ad7e87755d02e522893a9e12dd55b and 88161b3018305915c9cf0d2b45f695da709275da.\r\n\r\nUpdate: add tcpdump info.\r\nUpdate: add version info.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/53/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/54","id":583553144,"node_id":"MDU6SXNzdWU1ODM1NTMxNDQ=","number":54,"title":"Difficulties compiling for Varnish 5.2 into a .deb package","user":{"login":"Thertor","id":53084078,"node_id":"MDQ6VXNlcjUzMDg0MDc4","avatar_url":"https://avatars.githubusercontent.com/u/53084078?v=4","gravatar_id":"","url":"https://api.github.com/users/Thertor","html_url":"https://github.com/Thertor","followers_url":"https://api.github.com/users/Thertor/followers","following_url":"https://api.github.com/users/Thertor/following{/other_user}","gists_url":"https://api.github.com/users/Thertor/gists{/gist_id}","starred_url":"https://api.github.com/users/Thertor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Thertor/subscriptions","organizations_url":"https://api.github.com/users/Thertor/orgs","repos_url":"https://api.github.com/users/Thertor/repos","events_url":"https://api.github.com/users/Thertor/events{/privacy}","received_events_url":"https://api.github.com/users/Thertor/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2020-03-18T08:25:07Z","updated_at":"2020-03-18T10:14:56Z","closed_at":"2020-03-18T09:42:19Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi, I'm trying to compile the module from source and building it into a .deb package in ubuntu, but I'm getting errors during the last step, see below logs:\r\n\r\n```\r\nBuilding using working tree\r\nBuilding package in normal mode\r\nPurging the build dir: /home/eivind/build-area/libvmod-dynamic-5.2-1\r\nLooking for a way to retrieve the upstream tarball\r\nUpstream tarball already exists in build directory, using that\r\nBuilding the package in /home/eivind/build-area/libvmod-dynamic-5.2-1, using debuild -us -uc\r\n dpkg-buildpackage -rfakeroot -us -uc -ui\r\ndpkg-buildpackage: info: source package libvmod-dynamic\r\ndpkg-buildpackage: info: source version 5.2-1-1\r\ndpkg-buildpackage: info: source distribution bionic\r\ndpkg-buildpackage: info: source changed by Eivind Sivertsen <eivind.sivertsen@visma.com>\r\n dpkg-source --before-build libvmod-dynamic-5.2-1\r\ndpkg-buildpackage: info: host architecture amd64\r\n fakeroot debian/rules clean\r\ndh clean\r\n   dh_clean\r\n dpkg-source -b libvmod-dynamic-5.2-1\r\ndpkg-source: info: using source format '3.0 (quilt)'\r\ndpkg-source: info: building libvmod-dynamic using existing ./libvmod-dynamic_5.2-1.orig.tar.gz\r\ndpkg-source: info: building libvmod-dynamic in libvmod-dynamic_5.2-1-1.debian.tar.xz\r\ndpkg-source: info: building libvmod-dynamic in libvmod-dynamic_5.2-1-1.dsc\r\n debian/rules build\r\ndh build\r\n   dh_update_autotools_config\r\n   dh_autoreconf\r\naclocal: error: couldn't open directory '/aclocal': No such file or directory\r\nautoreconf: aclocal failed with exit status: 1\r\ndh_autoreconf: autoreconf -f -i returned exit code 1\r\ndebian/rules:18: recipe for target 'build' failed\r\nmake: *** [build] Error 2\r\ndpkg-buildpackage: error: debian/rules build subprocess returned exit status 2\r\ndebuild: fatal error at line 1152:\r\ndpkg-buildpackage -rfakeroot -us -uc -ui failed\r\nbzr: ERROR: The build failed.\r\n````","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/54/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/55","id":583788982,"node_id":"MDU6SXNzdWU1ODM3ODg5ODI=","number":55,"title":"panic when creating new backends","user":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804422,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjI=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/bug","name":"bug","color":"ee0701","default":true,"description":null},{"id":2228311103,"node_id":"MDU6TGFiZWwyMjI4MzExMTAz","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20%E2%99%A1Sponsor","name":"needs ♡Sponsor","color":"e094d3","default":false,"description":"looking for support ♥"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2020-03-18T14:57:01Z","updated_at":"2020-10-26T21:44:31Z","closed_at":"2020-10-14T10:00:31Z","author_association":"OWNER","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"reported by @Raboo in https://github.com/nigoroll/libvmod-dynamic/issues/53#issuecomment-600657956\r\n```\r\n# varnishadm panic.show\r\nPanic at: Wed, 18 Mar 2020 14:31:52 GMT\r\nAssert error in vbp_build_req(), cache/cache_backend_probe.c line 593:\r\n  Condition((be->hosthdr) != 0) not true.\r\nversion = varnish-6.4.0 revision 13f137934ec1cf14af66baf7896311115ee35598, vrt api = 11.0\r\nident = Linux,4.4.0-171-generic,x86_64,-junix,-smalloc,-sdefault,-hcritbit,epoll\r\nnow = 3632990.458782 (mono), 1584541911.163488 (real)\r\nBacktrace:\r\n  0x55fa88f43b85: varnishd(+0x50b85) [0x55fa88f43b85]\r\n  0x55fa88fb11e7: varnishd(VAS_Fail+0x17) [0x55fa88fb11e7]\r\n  0x55fa88f213ca: varnishd(+0x2e3ca) [0x55fa88f213ca]\r\n  0x55fa88f1ec78: varnishd(VRT_new_backend_clustered+0x2d8) [0x55fa88f1ec78]\r\n  0x7f0ee3ce3f49: ./vmod_cache/_vmod_dynamic.8464fed2571d152330aca2a8c2ba9d613da02b332f734302a48d8a6371a4998a(+0x5f49) [0x7f0ee3ce3f49]\r\n  0x7f0ef1711fa3: /lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3) [0x7f0ef1711fa3]\r\n  0x7f0ef16424cf: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f0ef16424cf]\r\npthread.attr = {\r\n  guard = 4096,\r\n  stack_bottom = 0x7f0ee1c48000,\r\n  stack_top = 0x7f0ee2448000,\r\n  stack_size = 8388608,\r\n}\r\nthr.req = (nil) {\r\n},\r\nthr.busyobj = (nil) {\r\n},\r\nvmods = {\r\n  dynamic = {0x7f0ef0eea070, Varnish 6.4.0 13f137934ec1cf14af66baf7896311115ee35598, 0.0},\r\n},\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/55/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/56","id":642977329,"node_id":"MDExOlB1bGxSZXF1ZXN0NDM3ODY1NjQ5","number":56,"title":"Update RPM packaging for compatibility with Varnish 6.3.2 and 6.4.0.","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-06-22T11:09:14Z","updated_at":"2020-06-23T15:50:54Z","closed_at":"2020-06-23T15:50:54Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/56","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/56","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/56.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/56.patch","merged_at":"2020-06-23T15:50:54Z"},"body":"I also pushed some tags to this fork, but I'm not sure if tags are included in a github PR. The tags go with these commitishes:\r\n2.0.0 => 71820eb7f91ad7e87755d02e522893a9e12dd55b\r\n2.1.0 => b08408a45f3d4a3c13cd2d43f8125256f5454487\r\n2.2.0 => 92ab61fd3cb73edbec30e6e754f5c9862767466d\r\nThat way, the VERSION set in AC_INIT, and set for the RPM version, matches the git tag.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/56/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/57","id":643952782,"node_id":"MDExOlB1bGxSZXF1ZXN0NDM4NjYwOTA3","number":57,"title":"Enable use of dynamic.backend() in vcl_init.","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2020-06-23T15:48:29Z","updated_at":"2020-06-24T09:12:52Z","closed_at":"2020-06-24T09:12:52Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/57","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/57","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/57.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/57.patch","merged_at":"2020-06-24T09:12:52Z"},"body":"I'm not sure if this is right, so I'm primarily asking for review and feedback. (But of course the PR can be merged if it is right.)\r\n\r\nThat is, I'm not sure if it's enough just to decline starting the lookup thread when `.backend()` is called in `vcl_init`, or if there are other conditions and/or invariants that might be violated.\r\n\r\nI'm also not sure if the added check in `.backend()` is strictly necessary -- load failure if the `.host` field is not set. It just doesn't make much sense to me to use `.backend()` in `vcl_init` unless you are providing a host to look up.\r\n\r\nAnd I haven't thought of a way to write a vtc test without installing another VMOD, since you need something that uses a BACKEND in `vcl_init`. I tested with this VCL using VMOD re2:\r\n```\r\nvcl 4.1;\r\n\r\nimport re2;\r\nimport dynamic;\r\n\r\nbackend fail None;\r\n\r\nsub vcl_init {\r\n        new d = dynamic.director();\r\n        d.debug(true);\r\n\r\n        new r = re2.set(literal=true, anchor=both);\r\n        r.add(\"one\", backend=d.backend(\"one.test.uplex.de\"));\r\n        r.add(\"two-a\", backend=d.backend(\"two-a.test.uplex.de\"));\r\n        r.add(\"two-b\", backend=d.backend(\"two-b.test.uplex.de\"));\r\n        r.compile();\r\n}\r\n\r\nsub vcl_recv {\r\n        set req.backend_hint = fail;\r\n        if (r.match(req.http.Domain)) {\r\n                set req.backend_hint = r.backend();\r\n        }\r\n}\r\n```\r\n\r\nBefore the change, calling `.backend()` in `vcl_init` resulted in assertion failure, since the lookup thread was started by both `dynamic_get()` (called by the method implementation) and `dynamic_start()` (called by the event handler). Obviously we wouldn't want two threads running when one is enough. But it also violated assumptions about the state enum:\r\n```\r\nDebug: Child (16913) Started\r\nError: Child (16913) not responding to CLI, killed it.\r\nCLI result = 400\r\nError: Child (16913) Pushing vcls failed:\r\nCLI communication error (hdr)\r\nDebug: Stopping Child\r\nError: Child (16913) died signal=6 (core dumped)\r\nError: Child (16913) Panic at: Tue, 23 Jun 2020 12:40:35 GMT\r\nAssert error in dynamic_start(), vmod_dynamic.c line 646:\r\n  Condition(dom->status == DYNAMIC_ST_READY) not true.\r\n```\r\nThis was because `.backend()` was called first, which started the thread and changed the state before the evnt handler ran and called `dynamic_start()`.\r\n\r\nWith the change in the PR, I get the expected result:\r\n```\r\n# varnish listening at port :8080\r\n$ curl -I -X GET -H 'Domain: one' -H 'Host: one.test.uplex.de' http://localhost:8080\r\nHTTP/1.1 302 Found\r\nDate: Tue, 23 Jun 2020 15:42:36 GMT\r\nServer: Varnish\r\nX-Varnish: 18335502\r\nLocation: https://one.test.uplex.de/\r\nContent-Length: 0\r\nX-Varnish: 32773\r\nAge: 0\r\nVia: 1.1 varnish (Varnish/6.4)\r\nConnection: keep-alive\r\n```\r\nThe redirect response to https matches the response you get for `http://one.test.uplex.de`, and the same thing happens for the `two-a` and `two-b` domains.\r\n\r\nI also see the Timestamps from VMOD dynamic as expected in the log:\r\n```\r\n$ varnishlog -g raw -q 'vxid == 0 and Timestamp' -d\r\n         0 Timestamp      - vmod-dynamic boot.d(one.test.uplex.de:http) Lookup: 1592925593.002916 0.000000 0.000000\r\n         0 Timestamp      - vmod-dynamic boot.d(two-a.test.uplex.de:http) Lookup: 1592925593.002975 0.000000 0.000000\r\n         0 Timestamp      - vmod-dynamic boot.d(two-b.test.uplex.de:http) Lookup: 1592925593.002990 0.000000 0.000000\r\n         0 Timestamp      - vmod-dynamic boot.d(one.test.uplex.de:http) Results: 1592925593.006311 0.003395 0.003395\r\n         0 Timestamp      - vmod-dynamic boot.d(one.test.uplex.de:http) Update: 1592925593.006472 0.003555 0.000160\r\n         0 Timestamp      - vmod-dynamic boot.d(two-b.test.uplex.de:http) Results: 1592925593.007160 0.004170 0.004170\r\n         0 Timestamp      - vmod-dynamic boot.d(two-b.test.uplex.de:http) Update: 1592925593.007166 0.004176 0.000006\r\n         0 Timestamp      - vmod-dynamic boot.d(two-a.test.uplex.de:http) Results: 1592925593.007333 0.004358 0.004358\r\n         0 Timestamp      - vmod-dynamic boot.d(two-a.test.uplex.de:http) Update: 1592925593.007339 0.004364 0.000006\r\n```\r\n@nigoroll have I overlooked anything? (Could it be this easy?)","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/57/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/58","id":645436170,"node_id":"MDExOlB1bGxSZXF1ZXN0NDM5OTE4NDg0","number":58,"title":"Add branch 6.3","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2020-06-25T10:07:19Z","updated_at":"2020-06-26T09:43:54Z","closed_at":"2020-06-26T09:43:53Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/58","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/58","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/58.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/58.patch","merged_at":null},"body":"This adds a new branch, since the most recently added test (test14.vtc) uses backend None, which was not available in Varnish 6.3. There are currently 10 vtc tests that use the `$bad_ip` macro, so we may want to change these over time on the master branch to use None.\r\n\r\nThe new branch includes a version 2.1.1, which I used for a new RPM that adds the recent new feature -- calling `.backend()` in `vcl_init`, which among other things allows the dynamic cirector to be layered with other directors. The RPM is already available at https://pkg.uplex.de.\r\n\r\n@nigoroll I tagged commit f9f4b245c8dca9b8c7ef1ecc815fa79566789bf1 as v2.1.1, but tags are not merged when github PRs are merged. So you'll probably have to do that for your github repo. I recommend that the main repo has git tags to match the version in `AC_INIT`, so that they match the RPM version numbers, and the version number created in the name of a distribution tarball. They also appear in github in the \"Release\" tab.\r\n\r\nSince there probably won't be any new Varnish 6.3.x releases, this branch will most likely be used to backport VMOD features for use with Varnish 6.3, and for new packaging, if we so choose.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/58/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/59","id":645439741,"node_id":"MDExOlB1bGxSZXF1ZXN0NDM5OTIxMTQz","number":59,"title":"Add version 2.2.1","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-06-25T10:12:42Z","updated_at":"2020-06-26T09:36:55Z","closed_at":"2020-06-26T09:36:55Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/59","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/59","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/59.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/59.patch","merged_at":"2020-06-26T09:36:54Z"},"body":"This adds version 2.2.1, which I used to build a new RPM that is compatible with Varnish 6.4.0 and adds the recent new feature (calling `.backend()` in `vcl_init`, layering dynamic with other directors). The RPM is already available at http://pkg.uplex.de.\r\n\r\n@nigoroll as with version 2.1.1 on branch 6.3, you'll probably have to apply tag v2.2.1 to commit 109a7300a1f9a128ddd79d6bddf7595770f56ee5 -- I did that in the fork, but tags are not merged with a github PR.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/59/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/60","id":656684529,"node_id":"MDU6SXNzdWU2NTY2ODQ1Mjk=","number":60,"title":"Varnish crashing because of dynamic vmod","user":{"login":"tmcevoy14","id":6459343,"node_id":"MDQ6VXNlcjY0NTkzNDM=","avatar_url":"https://avatars.githubusercontent.com/u/6459343?v=4","gravatar_id":"","url":"https://api.github.com/users/tmcevoy14","html_url":"https://github.com/tmcevoy14","followers_url":"https://api.github.com/users/tmcevoy14/followers","following_url":"https://api.github.com/users/tmcevoy14/following{/other_user}","gists_url":"https://api.github.com/users/tmcevoy14/gists{/gist_id}","starred_url":"https://api.github.com/users/tmcevoy14/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmcevoy14/subscriptions","organizations_url":"https://api.github.com/users/tmcevoy14/orgs","repos_url":"https://api.github.com/users/tmcevoy14/repos","events_url":"https://api.github.com/users/tmcevoy14/events{/privacy}","received_events_url":"https://api.github.com/users/tmcevoy14/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804426,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjY=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/invalid","name":"invalid","color":"e6e6e6","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2020-07-14T15:05:10Z","updated_at":"2020-07-15T10:00:39Z","closed_at":"2020-07-14T16:00:25Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"We are using the dynamic vmod (from branch 5.2) and it is frequently causing Varnish to crash. \r\n\r\nCrash logs show this:\r\n```\r\nvarnishadm panic.show\r\nPanic at: Tue, 14 Jul 2020 06:42:52 GMT\r\nAssert error in SES_Delete(), cache/cache_session.c line 546:\r\n  Condition(VTAILQ_EMPTY(&sp->privs->privs)) not true.\r\nversion = varnish-5.2.1 revision 67e562482, vrt api = 6.1\r\nident = Linux,3.10.0-1127.el7.x86_64,x86_64,-junix,-smalloc,-smalloc,-hcritbit,epoll\r\nnow = 5776089.456303 (mono), 1594708967.979804 (real)\r\nBacktrace:\r\n  0x4396da: /usr/sbin/varnishd() [0x4396da]\r\n  0x47ef02: /usr/sbin/varnishd(VAS_Fail+0x42) [0x47ef02]\r\n  0x442520: /usr/sbin/varnishd(SES_Delete+0x1f0) [0x442520]\r\n  0x459e7a: /usr/sbin/varnishd() [0x459e7a]\r\n  0x42cc61: /usr/sbin/varnishd() [0x42cc61]\r\n  0x42de19: /usr/sbin/varnishd(HSH_Unbusy+0x179) [0x42de19]\r\n  0x428d5d: /usr/sbin/varnishd() [0x428d5d]\r\n  0x45287e: /usr/sbin/varnishd() [0x45287e]\r\n  0x452d10: /usr/sbin/varnishd() [0x452d10]\r\n  0x7fa3f6ecdea5: /lib64/libpthread.so.0(+0x7ea5) [0x7fa3f6ecdea5]\r\nthread = (cache-worker)\r\nthr.req = (nil) {\r\n},\r\nthr.busyobj = 0x7f9ded9bb020 {\r\n  ws = 0x7f9ded9bb0a0 {\r\n    id = \\\"bo\\\",\r\n    {s, f, r, e} = {0x7f9ded9bd5c0, +15592, (nil), +121400},\r\n  },\r\n  retries = 0, failed = 0, flags = {do_stream, uncacheable, is_gunzip},\r\n  http_conn = 0x7f9ded9be590 {\r\n    fd = 9951 (@0x7fa0e14ef354),\r\n    doclose = REQ_CLOSE,\r\n    ws = 0x7f9ded9bb0a0 {\r\n      [Already dumped, see above]\r\n    },\r\n    {rxbuf_b, rxbuf_e} = {0x7f9ded9be5f0, 0x7f9ded9bf515},\r\n    {pipeline_b, pipeline_e} = {0x7f9ded9bf515, 0x7f9ded9c1238},\r\n    content_length = 16063,\r\n    body_status = length,\r\n    first_byte_timeout = 20.000000,\r\n    between_bytes_timeout = 20.000000,\r\n  },\r\n  filters = V1F_STRAIGHT=0\r\n  director_req = 0x7fa074ac14e0 {\r\n    vcl_name = director_web_default,\r\n    type = random {\r\n    },\r\n  },\r\n  director_resp = 0x7fa07e8ff538 {\r\n    vcl_name = web100-va2b,\r\n    type = backend {\r\n      display_name = reload_2020-07-13T032012.web100-va2b,\r\n      ipv4 = 10.40.131.200,\r\n      port = 10260,\r\n      hosthdr = web100-va2b.udsrvs.net,\r\n      health = healthy,\r\n      admin_health = probe, changed = 1594679804.904402,\r\n      n_conn = 8,\r\n    },\r\n  },\r\n  http[bereq] = 0x7f9ded9bb890 {\r\n    ws = 0x7f9ded9bb0a0 {\r\n      [Already dumped, see above]\r\n    },\r\n    hdrs {\r\n    },\r\n  },\r\n  http[beresp] = 0x7f9ded9bbf28 {\r\n    ws = 0x7f9ded9bb0a0 {\r\n      [Already dumped, see above]\r\n    },\r\n    hdrs {\r\n    },\r\n  },\r\n  objcore[fetch] = 0x7fa00125cec0 {\r\n    refcnt = 3,\r\n    flags = {pass},\r\n    exp_flags = {refd},\r\n    boc = 0x7f9dd9501640 {\r\n      refcnt = 2,\r\n      state = prep_stream,\r\n      vary = (nil),\r\n      stevedore_priv = (nil),\r\n    },\r\n    exp = {1594708967.979577, 120.000000, 10.000000, 0.000000},\r\n    objhead = 0x7fa071611860,\r\n    stevedore = 0x7fa3f60cd240 (malloc Transient) {\r\n      Simple = 0x7fa2181ea000,\r\n      Obj = 0x7fa08dacb608 {priv=0x7fa08dacb600, ptr=0x7fa2181ea000, len=3984, space=3984},\r\n      LEN = 0x0...0,\r\n      VXID = 0x0db772f0,\r\n      FLAGS = 0x00,\r\n      GZIPBITS = 0x0...0,\r\n      LASTMODIFIED = 0x41d7c354f9c00000,\r\n      VARY = {len=0, ptr=(nil)},\r\n      HEADERS = {len=3864, ptr=0x7fa2181ea078},\r\n    },\r\n  },\r\n  vcl = {\r\n    name = \\\"reload_2020-07-13T032012\\\",\r\n    busy = 11984,\r\n    discard = 0,\r\n    state = auto,\r\n    temp = warm,\r\n    conf = {\r\n      srcname = {\r\n        \\\"/etc/varnish/vcl/django.vcl\\\",\r\n        \\\"Builtin\\\",\r\n        \\\"/etc/varnish/backend_default.vcl\\\",\r\n        \\\"/etc/varnish/libraries/main.vcl\\\",\r\n        \\\"/etc/varnish/libraries/all.vcl\\\",\r\n        \\\"/etc/varnish/libraries/filters.vcl\\\",\r\n        \\\"/etc/varnish/libraries/uuid_generation.vcl\\\",\r\n        \\\"/etc/varnish/libraries/normalized_variables.vcl\\\",\r\n        \\\"/etc/varnish/libraries/request_headers.vcl\\\",\r\n        \\\"/etc/varnish/libraries/response_headers.vcl\\\",\r\n        \\\"/etc/varnish/libraries/synthetic_responses.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/cacheable_per_path.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/country.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/device.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/modern_browser.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/language.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/logged_in.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/normalized_urls.vcl\\\",\r\n        \\\"/etc/varnish/libraries/variables/path.vcl\\\",\r\n        \\\"/etc/varnish/libraries/errors/5xx.vcl\\\",\r\n      },\r\n    },\r\n  },\r\n  vmods = {\r\n    std = {Varnish 5.2.1 67e562482, 0.0},\r\n    cookie = {Varnish 5.2.1 67e562482, 0.0},\r\n    header = {Varnish 5.2.1 67e562482, 0.0},\r\n    var = {Varnish 5.2.1 67e562482, 0.0},\r\n    digest = {Varnish 5.2.1 67e562482, 0.0},\r\n    uuid = {Varnish 5.2.1 67e562482, 0.0},\r\n    directors = {Varnish 5.2.1 67e562482, 0.0},\r\n    dynamic = {Varnish 5.2.1 67e562482, 0.0},\r\n  },\r\n},\r\n```\r\n\r\n**FYI:** I've obfuscated the req and res headers because they contain user specific information. \r\n\r\n","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/60/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/61","id":665296397,"node_id":"MDU6SXNzdWU2NjUyOTYzOTc=","number":61,"title":"Least connection support","user":{"login":"danielmotaleite","id":11890049,"node_id":"MDQ6VXNlcjExODkwMDQ5","avatar_url":"https://avatars.githubusercontent.com/u/11890049?v=4","gravatar_id":"","url":"https://api.github.com/users/danielmotaleite","html_url":"https://github.com/danielmotaleite","followers_url":"https://api.github.com/users/danielmotaleite/followers","following_url":"https://api.github.com/users/danielmotaleite/following{/other_user}","gists_url":"https://api.github.com/users/danielmotaleite/gists{/gist_id}","starred_url":"https://api.github.com/users/danielmotaleite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielmotaleite/subscriptions","organizations_url":"https://api.github.com/users/danielmotaleite/orgs","repos_url":"https://api.github.com/users/danielmotaleite/repos","events_url":"https://api.github.com/users/danielmotaleite/events{/privacy}","received_events_url":"https://api.github.com/users/danielmotaleite/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804424,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjQ=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/enhancement","name":"enhancement","color":"84b6eb","default":true,"description":null},{"id":2228311103,"node_id":"MDU6TGFiZWwyMjI4MzExMTAz","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20%E2%99%A1Sponsor","name":"needs ♡Sponsor","color":"e094d3","default":false,"description":"looking for support ♥"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2020-07-24T16:59:34Z","updated_at":"2020-12-16T15:13:42Z","closed_at":"2020-12-16T15:13:42Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi\r\n\r\nFrom what i understand, we have by default round-robin backend policy... Is there any way to switch to least connections?\r\n\r\nIf one backend locks up or get overload\r\n, with round-robin, varnish will still try to deliver requests, not only overloading it more, but increasing the number of requests that may fail (when finally the healthcheck removes the bad backend) or get bad performance... with least connections, the locked one still will keep some requests, but new ones will be delivered to good backends, avoiding overloading even more the bad backend\r\n\r\nthanks","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/61/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/62","id":681916680,"node_id":"MDU6SXNzdWU2ODE5MTY2ODA=","number":62,"title":"Problem while building for varnish 6.4","user":{"login":"abresson","id":23034299,"node_id":"MDQ6VXNlcjIzMDM0Mjk5","avatar_url":"https://avatars.githubusercontent.com/u/23034299?v=4","gravatar_id":"","url":"https://api.github.com/users/abresson","html_url":"https://github.com/abresson","followers_url":"https://api.github.com/users/abresson/followers","following_url":"https://api.github.com/users/abresson/following{/other_user}","gists_url":"https://api.github.com/users/abresson/gists{/gist_id}","starred_url":"https://api.github.com/users/abresson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abresson/subscriptions","organizations_url":"https://api.github.com/users/abresson/orgs","repos_url":"https://api.github.com/users/abresson/repos","events_url":"https://api.github.com/users/abresson/events{/privacy}","received_events_url":"https://api.github.com/users/abresson/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2020-08-19T15:07:50Z","updated_at":"2020-08-26T15:11:19Z","closed_at":"2020-08-26T15:11:19Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I'm probably doing something wrong, but I cannot figure out what\r\n\r\nHere are some information about the steps I'm doing\r\n```\r\nvarnishd (varnish-6.4.0 revision 13f137934ec1cf14af66baf7896311115ee35598)\r\nCopyright (c) 2006 Verdens Gang AS\r\nCopyright (c) 2006-2020 Varnish Software AS\r\n```\r\n```\r\napt-cache policy varnish\r\nvarnish:\r\n  Installed: 6.4.0-1~buster\r\n  Candidate: 6.4.0-1~buster\r\n  Version table:\r\n *** 6.4.0-1~buster 500\r\n        500 https://packagecloud.io/varnishcache/varnish64/debian buster/main amd64 Packages\r\n        100 /var/lib/dpkg/status\r\n     6.1.1-1+deb10u1 500\r\n```\r\n\r\n```\r\ncat /etc/debian_version \r\n10.4\r\n```\r\n\r\n```\r\ndpkg -l |grep -E \"libgetdns-dev|automake|libvarnishapi-dev|libtool|pkg-config\"\r\nii  automake                         1:1.16.1-4                   all          Tool for generating GNU Standards-compliant Makefiles\r\nii  libgetdns-dev                    1.5.1-1                      amd64        modern asynchronous DNS API (development)\r\nii  libltdl-dev:amd64                2.4.6-9                      amd64        System independent dlopen wrapper for GNU libtool\r\nii  libltdl7:amd64                   2.4.6-9                      amd64        System independent dlopen wrapper for GNU libtool\r\nii  libtool                          2.4.6-9                      all          Generic library support script\r\nii  libvarnishapi-dev:amd64          6.1.1-1+deb10u1              amd64        development files for Varnish\r\nii  pkg-config                       0.29-6                       amd64        manage compile and link flags for libraries\r\n```\r\n\r\n```\r\ngit clone https://github.com/nigoroll/libvmod-dynamic.git\r\ngit checkout 6.4\r\n```\r\n\r\n```\r\n./autogen.sh\r\n./configure\r\n```\r\n\r\nThen I run make, and it fail..\r\n```\r\nmake\r\n\r\nmake  all-recursive\r\nmake[1]: Entering directory '/tmp/bb/libvmod-dynamic'\r\nMaking all in src\r\nmake[2]: Entering directory '/tmp/bb/libvmod-dynamic/src'\r\n  CC       vmod_dynamic.lo\r\nIn file included from vmod_dynamic.c:55:\r\ndyn_resolver.h:34:31: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token\r\n struct VPFX(dynamic_resolver) * dyn_resolver_blob(VCL_BLOB);\r\n                               ^\r\ndyn_resolver.h:51:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token\r\n typedef int res_lookup_f(struct VPFX(dynamic_resolver) *r,\r\n                                                        ^\r\ndyn_resolver.h:58:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token\r\n typedef int srv_lookup_f(struct VPFX(dynamic_resolver) *r,\r\n                                                        ^\r\ndyn_resolver.h:72:2: error: unknown type name ‘res_lookup_f’\r\n  res_lookup_f *lookup;\r\n  ^~~~~~~~~~~~\r\ndyn_resolver.h:76:2: error: unknown type name ‘srv_lookup_f’\r\n  srv_lookup_f *srv_lookup;\r\n  ^~~~~~~~~~~~\r\nIn file included from vmod_dynamic.c:56:\r\nvmod_dynamic.h:177:33: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘*’ token\r\n  struct VPFX(dynamic_resolver)  *resolver_inst;\r\n                                 ^\r\nvmod_dynamic.c: In function ‘dynamic_update_domain’:\r\nvmod_dynamic.c:456:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == cfg) {\r\n                     ^~\r\nvmod_dynamic.c:458:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == min) {\r\n                     ^~\r\nvmod_dynamic.c:461:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == max) {\r\n                     ^~\r\nIn file included from /usr/include/varnish/cache/cache.h:50,\r\n                 from vmod_dynamic.c:45:\r\nvmod_dynamic.c:465:18: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n   assert(dom->obj->ttl_from == dns);\r\n                  ^~\r\n/usr/include/varnish/vas.h:59:8: note: in definition of macro ‘assert’\r\n  if (!(e)) {       \\\r\n        ^\r\nvmod_dynamic.c: In function ‘dynamic_lookup_thread’:\r\nvmod_dynamic.c:502:26: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   ret = res->lookup(obj->resolver_inst, dom->addr,\r\n                          ^~~~~~~~~~~~~\r\n                          resolver\r\nvmod_dynamic.c:502:9: error: called object is not a function or function pointer\r\n   ret = res->lookup(obj->resolver_inst, dom->addr,\r\n         ^~~\r\nvmod_dynamic.c: In function ‘dynamic_stop’:\r\nvmod_dynamic.c:630:2: error: implicit declaration of function ‘VRT_VCL_Allow_Discard’; did you mean ‘VRT_VSC_Alloc’? [-Werror=implicit-function-declaration]\r\n  VRT_VCL_Allow_Discard(&obj->vclref);\r\n  ^~~~~~~~~~~~~~~~~~~~~\r\n  VRT_VSC_Alloc\r\nvmod_dynamic.c: In function ‘dynamic_start’:\r\nvmod_dynamic.c:645:16: error: implicit declaration of function ‘VRT_VCL_Prevent_Discard’ [-Werror=implicit-function-declaration]\r\n  obj->vclref = VRT_VCL_Prevent_Discard(ctx, buf);\r\n                ^~~~~~~~~~~~~~~~~~~~~~~\r\nvmod_dynamic.c:645:14: error: assignment to ‘struct vclref *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion]\r\n  obj->vclref = VRT_VCL_Prevent_Discard(ctx, buf);\r\n              ^\r\nvmod_dynamic.c: In function ‘vmod_director__init’:\r\nvmod_dynamic.c:936:5: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  obj->ttl_from = dynamic_ttl_parse(ttl_from_s);\r\n     ^~\r\nvmod_dynamic.c:940:8: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   obj->resolver_inst = dyn_resolver_blob(resolver);\r\n        ^~~~~~~~~~~~~\r\n        resolver\r\nvmod_dynamic.c:940:24: error: implicit declaration of function ‘dyn_resolver_blob’; did you mean ‘vmod_resolver_use’? [-Werror=implicit-function-declaration]\r\n   obj->resolver_inst = dyn_resolver_blob(resolver);\r\n                        ^~~~~~~~~~~~~~~~~\r\n                        vmod_resolver_use\r\nvmod_dynamic.c:941:12: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   if (obj->resolver_inst == NULL)\r\n            ^~~~~~~~~~~~~\r\n            resolver\r\nvmod_dynamic.c:945:10: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n   if (obj->ttl_from != cfg)\r\n          ^~\r\nIn file included from vmod_dynamic.c:55:\r\nvmod_dynamic.c: At top level:\r\ndyn_resolver.h:32:13: error: storage size of ‘dynamic_resolver’ isn’t known\r\n struct VPFX(dynamic_resolver);\r\n             ^~~~~~~~~~~~~~~~\r\ncc1: all warnings being treated as errors\r\nmake[2]: *** [Makefile:702: vmod_dynamic.lo] Error 1\r\nmake[2]: Leaving directory '/tmp/bb/libvmod-dynamic/src'\r\nmake[1]: *** [Makefile:494: all-recursive] Error 1\r\nmake[1]: Leaving directory '/tmp/bb/libvmod-dynamic'\r\nmake: *** [Makefile:405: all] Error 2\r\n```\r\n\r\nI have no problem compiling other modules such as xkey or curl.\r\nAny help pointing what I'm doing wrong would be much appreciated, thanks","closed_by":{"login":"abresson","id":23034299,"node_id":"MDQ6VXNlcjIzMDM0Mjk5","avatar_url":"https://avatars.githubusercontent.com/u/23034299?v=4","gravatar_id":"","url":"https://api.github.com/users/abresson","html_url":"https://github.com/abresson","followers_url":"https://api.github.com/users/abresson/followers","following_url":"https://api.github.com/users/abresson/following{/other_user}","gists_url":"https://api.github.com/users/abresson/gists{/gist_id}","starred_url":"https://api.github.com/users/abresson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abresson/subscriptions","organizations_url":"https://api.github.com/users/abresson/orgs","repos_url":"https://api.github.com/users/abresson/repos","events_url":"https://api.github.com/users/abresson/events{/privacy}","received_events_url":"https://api.github.com/users/abresson/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/62/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/63","id":687925709,"node_id":"MDU6SXNzdWU2ODc5MjU3MDk=","number":63,"title":"Is it possible: self-routing sharded Varnish Cache cluster with libvmod-dynamic ?","user":{"login":"abresson","id":23034299,"node_id":"MDQ6VXNlcjIzMDM0Mjk5","avatar_url":"https://avatars.githubusercontent.com/u/23034299?v=4","gravatar_id":"","url":"https://api.github.com/users/abresson","html_url":"https://github.com/abresson","followers_url":"https://api.github.com/users/abresson/followers","following_url":"https://api.github.com/users/abresson/following{/other_user}","gists_url":"https://api.github.com/users/abresson/gists{/gist_id}","starred_url":"https://api.github.com/users/abresson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abresson/subscriptions","organizations_url":"https://api.github.com/users/abresson/orgs","repos_url":"https://api.github.com/users/abresson/repos","events_url":"https://api.github.com/users/abresson/events{/privacy}","received_events_url":"https://api.github.com/users/abresson/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2020-08-28T09:02:38Z","updated_at":"2024-03-18T20:26:02Z","closed_at":"2020-09-02T10:47:13Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hello,\r\n\r\nI usually (without libvmod-dynamic) use cache sharding on varnish, based on what is described here : https://info.varnish-software.com/blog/creating-self-routing-varnish-cluster\r\n\r\nWith libvmod-dynamic I'm not able to determine the varnish backend identity from which the traffic is coming from because `req.backend_hint` doesn't return the name of a specific backend, but instead the general name of the dynamic backend.\r\n\r\nHere are some vcl configuration to try to make myself clear:\r\n\r\n**Without dynamic**\r\n```\r\nbackend node1 {\r\n  .host = \"node1.example.com\";\r\n  .port = \"80\";\r\n}\r\n\r\nbackend node2 {\r\n  .host = \"node2.example.com\";\r\n  .port = \"80\";\r\n}\r\n\r\nbackend content {\r\n  .host = \"content-origin.example.com\";\r\n  .port = \"80\";\r\n}\r\n\r\nsub vcl_init\r\n{\r\n  new cluster = directors.hash();\r\n  cluster.add_backend(node1, 1);\r\n  cluster.add_backend(node2, 1);\r\n}\r\n\r\nsub vcl_recv\r\n{\r\n  set req.backend_hint = cluster.backend();\r\n  set req.http.X-shard = req.backend_hint;\r\n\r\n  if (req.http.X-shard == server.identity) {\r\n    set req.backend_hint = content;\r\n  } else {\r\n    return(pass);\r\n  }\r\n}\r\n```\r\nIn the above code, there is no problem,  req.backend_hint will be set to either node1.example.com or node2.example.com\r\n\r\n**With dynamic**\r\n\r\nLet's imagine node.example.com is a multi A DNS record with 2 varnish servers,\r\n`node.example.com  300 IN CNAME varnish1`\r\n `node.example.com  300 IN CNAME varnish2`\r\n\r\n```\r\nprobe node_probe {\r\n  .interval = 5s;\r\n  .timeout = 1s;\r\n  .window = 5;\r\n  .threshold = 3;\r\n  .initial = 3;\r\n  .request =\r\n          \"HEAD / HTTP/1.1\"\r\n          \"Host: node.example.com\"\r\n          \"Connection: close\"\r\n          \"User-Agent: Varnish node Health Probe\";\r\n\r\n}\r\n\r\nprobe content_probe {\r\n  .interval = 5s;\r\n  .timeout = 1s;\r\n  .window = 5;\r\n  .threshold = 3;\r\n  .initial = 3;\r\n  .request =\r\n          \"HEAD / HTTP/1.1\"\r\n          \"Host: content-origin.example.com\"\r\n          \"Connection: close\"\r\n          \"User-Agent: Varnish content Health Probe\";\r\n}\r\n\r\nsub vcl_init\r\n{\r\n  new d_node = dynamic.director(\r\n    probe = node_probe,\r\n    host_header = \"Host\",\r\n    port = 80,\r\n    ttl = 30s\r\n  );\r\n\r\n  new d_content= dynamic.director(\r\n    probe = content_probe,\r\n    host_header = \"Host\",\r\n    port = 80,\r\n    ttl = 30s\r\n  );\r\n\r\n  new v_cluster = directors.shard();\r\n  varnish_nodes.add_backend(d_node.backend(\"node.example.com\",\"80\"));\r\n  varnish_nodes.reconfigure();\r\n\r\n  new c_cluster = directors.round_robin();\r\n  front_nodes.add_backend(d_content.backend(\"content-origin.example.com\",\"80\"));\r\n}\r\n\r\nsub vcl_recv\r\n{\r\n  set req.backend_hint = v_cluster.backend();\r\n  set req.http.X-shard = req.backend_hint;\r\n\r\n  if (req.http.X-shard == server.identity) {\r\n    set req.backend_hint = c_cluster;\r\n  } else {\r\n    return(pass);\r\n  }\r\n}\r\n```\r\n\r\nThe above code doesn't work because `req.backend_hint = v_cluster.backend()` will be set to `v_cluster(node.example.com:80)` and not to the actual varnish backend hosts. \r\nI mean `req.http.X-shard` will be set to either `varnish2` or `varnish1` whereas `req.backend_hint`  wil always be set to  `v_cluster(node.example.com:80)`\r\n\r\nIs there any way to put hostname of the varnish wich actually catched the orign request in \r\n`req.backend_hint` ?\r\n\r\nI'm sorry if my explanation is confused, let me know if you need me to add more information to clarify.\r\n\r\nRegards,","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/63/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/64","id":720085486,"node_id":"MDU6SXNzdWU3MjAwODU0ODY=","number":64,"title":"Compilation error against Varnish 6.1.1","user":{"login":"wimsymons","id":1419117,"node_id":"MDQ6VXNlcjE0MTkxMTc=","avatar_url":"https://avatars.githubusercontent.com/u/1419117?v=4","gravatar_id":"","url":"https://api.github.com/users/wimsymons","html_url":"https://github.com/wimsymons","followers_url":"https://api.github.com/users/wimsymons/followers","following_url":"https://api.github.com/users/wimsymons/following{/other_user}","gists_url":"https://api.github.com/users/wimsymons/gists{/gist_id}","starred_url":"https://api.github.com/users/wimsymons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wimsymons/subscriptions","organizations_url":"https://api.github.com/users/wimsymons/orgs","repos_url":"https://api.github.com/users/wimsymons/repos","events_url":"https://api.github.com/users/wimsymons/events{/privacy}","received_events_url":"https://api.github.com/users/wimsymons/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2020-10-13T10:13:01Z","updated_at":"2020-10-14T11:21:26Z","closed_at":"2020-10-14T08:54:45Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi,\r\n\r\nI'm trying to compile the module against Varnish 6.1.1 provided by Debian 10 (Buster).\r\nAs stated in the README, I should use branch 6.2 for that.\r\n\r\nBut when I try to do so, I get these compilation errors:\r\n\r\n```\r\nmake  all-recursive\r\nmake[1]: Entering directory '/home/vagrant/libvmod-dynamic64'\r\nMaking all in src\r\nmake[2]: Entering directory '/home/vagrant/libvmod-dynamic64/src'\r\n  VMODTOOL vcc_dynamic_if.c\r\n  CC       vmod_dynamic.lo\r\nIn file included from vmod_dynamic.c:55:\r\ndyn_resolver.h:34:31: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token\r\n struct VPFX(dynamic_resolver) * dyn_resolver_blob(VCL_BLOB);\r\n                               ^\r\ndyn_resolver.h:51:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token\r\n typedef int res_lookup_f(struct VPFX(dynamic_resolver) *r,\r\n                                                        ^\r\ndyn_resolver.h:58:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token\r\n typedef int srv_lookup_f(struct VPFX(dynamic_resolver) *r,\r\n                                                        ^\r\ndyn_resolver.h:72:2: error: unknown type name ‘res_lookup_f’\r\n  res_lookup_f *lookup;\r\n  ^~~~~~~~~~~~\r\ndyn_resolver.h:76:2: error: unknown type name ‘srv_lookup_f’\r\n  srv_lookup_f *srv_lookup;\r\n  ^~~~~~~~~~~~\r\nIn file included from vmod_dynamic.c:56:\r\nvmod_dynamic.h:176:33: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘*’ token\r\n  struct VPFX(dynamic_resolver)  *resolver_inst;\r\n                                 ^\r\nvmod_dynamic.c: In function ‘dynamic_update_domain’:\r\nvmod_dynamic.c:452:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == cfg) {\r\n                     ^~\r\nvmod_dynamic.c:454:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == min) {\r\n                     ^~\r\nvmod_dynamic.c:457:21: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  } else if (dom->obj->ttl_from == max) {\r\n                     ^~\r\nIn file included from /usr/include/varnish/cache/cache.h:50,\r\n                 from vmod_dynamic.c:45:\r\nvmod_dynamic.c:461:18: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n   assert(dom->obj->ttl_from == dns);\r\n                  ^~\r\n/usr/include/varnish/vas.h:59:8: note: in definition of macro ‘assert’\r\n  if (!(e)) {       \\\r\n        ^\r\nvmod_dynamic.c: In function ‘dynamic_lookup_thread’:\r\nvmod_dynamic.c:498:26: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   ret = res->lookup(obj->resolver_inst, dom->addr,\r\n                          ^~~~~~~~~~~~~\r\n                          resolver\r\nvmod_dynamic.c:498:9: error: called object is not a function or function pointer\r\n   ret = res->lookup(obj->resolver_inst, dom->addr,\r\n         ^~~\r\nvmod_dynamic.c: In function ‘vmod_director__init’:\r\nvmod_dynamic.c:932:5: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n  obj->ttl_from = dynamic_ttl_parse(ttl_from_s);\r\n     ^~\r\nvmod_dynamic.c:936:8: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   obj->resolver_inst = dyn_resolver_blob(resolver);\r\n        ^~~~~~~~~~~~~\r\n        resolver\r\nvmod_dynamic.c:936:24: error: implicit declaration of function ‘dyn_resolver_blob’; did you mean ‘vmod_resolver_use’? [-Werror=implicit-function-declaration]\r\n   obj->resolver_inst = dyn_resolver_blob(resolver);\r\n                        ^~~~~~~~~~~~~~~~~\r\n                        vmod_resolver_use\r\nvmod_dynamic.c:937:12: error: ‘struct vmod_dynamic_director’ has no member named ‘resolver_inst’; did you mean ‘resolver’?\r\n   if (obj->resolver_inst == NULL)\r\n            ^~~~~~~~~~~~~\r\n            resolver\r\nvmod_dynamic.c:941:10: error: ‘struct vmod_dynamic_director’ has no member named ‘ttl_from’\r\n   if (obj->ttl_from != cfg)\r\n          ^~\r\nIn file included from vmod_dynamic.c:55:\r\nvmod_dynamic.c: At top level:\r\ndyn_resolver.h:32:13: error: storage size of ‘dynamic_resolver’ isn’t known\r\n struct VPFX(dynamic_resolver);\r\n             ^~~~~~~~~~~~~~~~\r\ncc1: all warnings being treated as errors\r\nmake[2]: *** [Makefile:704: vmod_dynamic.lo] Error 1\r\nmake[2]: Leaving directory '/home/vagrant/libvmod-dynamic64/src'\r\nmake[1]: *** [Makefile:497: all-recursive] Error 1\r\nmake[1]: Leaving directory '/home/vagrant/libvmod-dynamic64'\r\nmake: *** [Makefile:408: all] Error 2\r\n```\r\n\r\nSteps to reproduce on Debian Buster:\r\n```\r\nsudo apt-get install libgetdns-dev libvarnishapi-dev automake libtool python3-docutils\r\ngit clone https://github.com/nigoroll/libvmod-dynamic.git libvmod-dynamic64\r\ncd libvmod-dynamic64/\r\ngit checkout 6.2\r\n./autogen.sh\r\n./configure\r\nmake\r\n```\r\n\r\nPackage versions:\r\n```\r\nvagrant@debian-10:~/libvmod-dynamic64$ dpkg -l libvarnishapi-dev libgetdns-dev\r\nDesired=Unknown/Install/Remove/Purge/Hold\r\n| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend\r\n|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)\r\n||/ Name                    Version         Architecture Description\r\n+++-=======================-===============-============-=================================\r\nii  libgetdns-dev           1.5.1-1         amd64        modern asynchronous DNS API (development)\r\nii  libvarnishapi-dev:amd64 6.1.1-1+deb10u1 amd64        development files for Varnish\r\n```\r\n\r\nIs the 6.2 branch no longer compatible with Varnish 6.1.1?\r\n\r\nKind regards\r\n\r\nWim","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/64/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/65","id":743264836,"node_id":"MDExOlB1bGxSZXF1ZXN0NTIxMjAxMjA2","number":65,"title":"Fix for addition of struct vrt_endpoint to VRT.","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-11-15T14:10:02Z","updated_at":"2020-11-16T15:43:04Z","closed_at":"2020-11-16T15:43:04Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/65","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/65","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/65.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/65.patch","merged_at":"2020-11-16T15:43:04Z"},"body":"","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/65/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/66","id":772100619,"node_id":"MDU6SXNzdWU3NzIxMDA2MTk=","number":66,"title":"error: storage size of 'ep' isn't known","user":{"login":"ronaldploeger","id":2346952,"node_id":"MDQ6VXNlcjIzNDY5NTI=","avatar_url":"https://avatars.githubusercontent.com/u/2346952?v=4","gravatar_id":"","url":"https://api.github.com/users/ronaldploeger","html_url":"https://github.com/ronaldploeger","followers_url":"https://api.github.com/users/ronaldploeger/followers","following_url":"https://api.github.com/users/ronaldploeger/following{/other_user}","gists_url":"https://api.github.com/users/ronaldploeger/gists{/gist_id}","starred_url":"https://api.github.com/users/ronaldploeger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronaldploeger/subscriptions","organizations_url":"https://api.github.com/users/ronaldploeger/orgs","repos_url":"https://api.github.com/users/ronaldploeger/repos","events_url":"https://api.github.com/users/ronaldploeger/events{/privacy}","received_events_url":"https://api.github.com/users/ronaldploeger/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804426,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjY=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/invalid","name":"invalid","color":"e6e6e6","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2020-12-21T11:43:49Z","updated_at":"2021-09-15T22:55:30Z","closed_at":"2020-12-21T13:00:09Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I am building inside a docker container based on \"ubuntu:18.04\" running: \r\n\r\n```\r\nVMOD_DYNAMIC_BUILD_DEPS=\"autotools-dev \\\r\n  automake \\\r\n  libtool \\\r\n  autoconf \\\r\n  libncurses-dev \\\r\n  xsltproc \\\r\n  groff-base \\\r\n  libpcre3-dev \\\r\n  pkg-config \\\r\n  build-essential \\\r\n  python3 \\\r\n  python3-docutils \\\r\n  libjemalloc-dev \\\r\n  libreadline-dev \\\r\n  python3-sphinx \\\r\n  libcurl3-dev \\\r\n  unzip\"\r\n\r\n# Install dependencies\r\n# ------------------------------------------------------------------------------\r\napt-get update\r\napt-get install --no-install-recommends --no-install-suggests -y ${VMOD_DYNAMIC_BUILD_DEPS}\r\n\r\nunzip \"${VMOD_DYNAMIC_DOWNLOAD}\"\r\n\r\nsh autogen.sh\r\nsh configure \\\r\n  --bindir=/usr/bin \\\r\n  --sbindir=/usr/sbin \\\r\n  --sysconfdir=/etc \\\r\n  --libdir=/usr/lib\r\nmake\r\nmake install\r\n```\r\n\r\nFrom this commit https://github.com/nigoroll/libvmod-dynamic/commit/caab533a23f60c9e1227c4db241b7749841f780d on I can not build anymore but get\r\n\r\n```\r\nmake  all-recursive\r\nmake[1]: Entering directory '/tmp/docker/libvmod-dynamic-caab533a23f60c9e1227c4db241b7749841f780d'\r\nMaking all in src\r\nmake[2]: Entering directory '/tmp/docker/libvmod-dynamic-caab533a23f60c9e1227c4db241b7749841f780d/src'\r\n  VMODTOOL vcc_dynamic_if.c\r\n  CC       vmod_dynamic.lo\r\nvmod_dynamic.c: In function 'dynamic_add':\r\nvmod_dynamic.c:327:22: error: storage size of 'ep' isn't known\r\n  struct vrt_endpoint ep;\r\n                      ^~\r\nIn file included from /usr/local/include/varnish/cache/cache.h:51:0,\r\n                 from vmod_dynamic.c:45:\r\nvmod_dynamic.c:396:16: error: 'VRT_ENDPOINT_MAGIC' undeclared (first use in this function); did you mean 'VRT_BACKEND_MAGIC'?\r\n  INIT_OBJ(&ep, VRT_ENDPOINT_MAGIC);\r\n                ^\r\n/usr/local/include/varnish/miniobj.h:17:18: note: in definition of macro 'INIT_OBJ'\r\n   (to)->magic = (type_magic);    \\\r\n                  ^~~~~~~~~~\r\nvmod_dynamic.c:396:16: note: each undeclared identifier is reported only once for each function it appears in\r\n  INIT_OBJ(&ep, VRT_ENDPOINT_MAGIC);\r\n                ^\r\n/usr/local/include/varnish/miniobj.h:17:18: note: in definition of macro 'INIT_OBJ'\r\n   (to)->magic = (type_magic);    \\\r\n                  ^~~~~~~~~~\r\nvmod_dynamic.c:410:5: error: 'struct vrt_backend' has no member named 'endpoint'\r\n  vrt.endpoint = &ep;\r\n     ^\r\nvmod_dynamic.c:327:22: error: unused variable 'ep' [-Werror=unused-variable]\r\n  struct vrt_endpoint ep;\r\n                      ^~\r\ncc1: all warnings being treated as errors\r\nMakefile:689: recipe for target 'vmod_dynamic.lo' failed\r\nmake[2]: Leaving directory '/tmp/docker/libvmod-dynamic-caab533a23f60c9e1227c4db241b7749841f780d/src'\r\nmake[2]: *** [vmod_dynamic.lo] Error 1\r\nMakefile:494: recipe for target 'all-recursive' failed\r\nmake[1]: Leaving directory '/tmp/docker/libvmod-dynamic-caab533a23f60c9e1227c4db241b7749841f780d'\r\nmake[1]: *** [all-recursive] Error 1\r\nMakefile:405: recipe for target 'all' failed\r\nmake: *** [all] Error 2\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/66/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/67","id":780680903,"node_id":"MDU6SXNzdWU3ODA2ODA5MDM=","number":67,"title":"Assert error in VRT_VSC_Destroy()","user":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804422,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjI=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/bug","name":"bug","color":"ee0701","default":true,"description":null}],"state":"closed","locked":false,"assignee":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":null,"comments":0,"created_at":"2021-01-06T16:28:04Z","updated_at":"2021-01-07T13:50:11Z","closed_at":"2021-01-07T13:50:11Z","author_association":"OWNER","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"seen by @slimhazard\r\n```\r\nPanic at: Wed, 06 Jan 2021 13:53:13 GMT\r\nAssert error in VRT_VSC_Destroy(), common/common_vsc.c line 200:\r\n  Condition((vsg) != NULL) not true.\r\nversion = varnish-6.5.1 revision1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64, vrt api = 12.0\r\nident = Linux,4.19.0-6-amd64,x86_64,-junix,-sdefault,-sdefault,-hcritbit,epoll\r\nnow = 486009.986834 (mono), 1609941193.760639 (real)\r\nBacktrace:\r\n  0x43f7df: /usr/sbin/varnishd() [0x43f7df]\r\n  0x4a99b5: /usr/sbin/varnishd(VAS_Fail+0x45) [0x4a99b5]\r\n  0x4644f1: /usr/sbin/varnishd() [0x4644f1]\r\n  0x7f951d5fd990: ./vmod_cache/_vmod_dynamic.99d3db6707fde818e419de5d6c0c375da7efe809681dcdc4ffcf909db540302c(vmod_event+0x470)\r\n[0x7f951d5fd990]\r\n  0x7f9519e1e726: vcl_vk8s_ing_65OeQ3N75jaW8kbTEH3frDay01MAwI8ve4hKg7.1609940320.829609/vgc.so(+0x4726)\r\n[0x7f9519e1e726]\r\n  0x44f3c8: /usr/sbin/varnishd() [0x44f3c8]\r\n  0x451113: /usr/sbin/varnishd(VCL_Poll+0x123) [0x451113]\r\n  0x4513dd: /usr/sbin/varnishd() [0x4513dd]\r\n  0x4abbca: /usr/sbin/varnishd() [0x4abbca]\r\n  0x4ac09e: /usr/sbin/varnishd(VCLS_Poll+0x35e)\r\n...\r\n```","closed_by":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/67/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/68","id":794019764,"node_id":"MDU6SXNzdWU3OTQwMTk3NjQ=","number":68,"title":"can not build on alpine:3.13","user":{"login":"raybog","id":8174876,"node_id":"MDQ6VXNlcjgxNzQ4NzY=","avatar_url":"https://avatars.githubusercontent.com/u/8174876?v=4","gravatar_id":"","url":"https://api.github.com/users/raybog","html_url":"https://github.com/raybog","followers_url":"https://api.github.com/users/raybog/followers","following_url":"https://api.github.com/users/raybog/following{/other_user}","gists_url":"https://api.github.com/users/raybog/gists{/gist_id}","starred_url":"https://api.github.com/users/raybog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/raybog/subscriptions","organizations_url":"https://api.github.com/users/raybog/orgs","repos_url":"https://api.github.com/users/raybog/repos","events_url":"https://api.github.com/users/raybog/events{/privacy}","received_events_url":"https://api.github.com/users/raybog/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2021-01-26T08:01:19Z","updated_at":"2021-03-16T15:48:05Z","closed_at":"2021-03-16T15:48:05Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Trying to build varnish docker on latest alpine:\r\n\r\n```\r\nFROM alpine:3.13 AS builder\r\nENV LIBVMOD_DYNAMIC_VERSION=2.3.0\r\nRUN apk --no-cache add automake autoconf libtool make curl python3 py3-sphinx py-docutils pkgconf \\\r\n                     gcc make g++ zlib-dev pcre-dev libedit-dev readline-dev libexecinfo-dev linux-headers \\\r\n                     varnish varnish-dev\r\n\r\nRUN cd /tmp && curl -sSLO https://github.com/nigoroll/libvmod-dynamic/archive/v${LIBVMOD_DYNAMIC_VERSION}.zip && \\\r\n  unzip v${LIBVMOD_DYNAMIC_VERSION}.zip && cd libvmod-dynamic-${LIBVMOD_DYNAMIC_VERSION} && \\\r\n  ./autogen.sh && ./configure && make && make install\r\n\r\n```\r\n\r\nGetting this error:\r\n\r\n```\r\n/usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: .libs/vmod_dynamic_service.o:/tmp/libvmod-dynamic-2.3.0/src/vmod_dynamic.h:181: multiple definition of `objects'; .libs/vmod_dynamic.o:/tmp/libvmod-dynamic-2.3.0/src/vmod_dynamic.h:181: first defined here\r\ncollect2: error: ld returned 1 exit status\r\nmake[2]: Leaving directory '/tmp/libvmod-dynamic-2.3.0/src'\r\n```\r\n\r\n\r\n\r\n","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/68/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/69","id":830221383,"node_id":"MDU6SXNzdWU4MzAyMjEzODM=","number":69,"title":"Compilation error on Debian bullseye (testing)","user":{"login":"huiser","id":50897,"node_id":"MDQ6VXNlcjUwODk3","avatar_url":"https://avatars.githubusercontent.com/u/50897?v=4","gravatar_id":"","url":"https://api.github.com/users/huiser","html_url":"https://github.com/huiser","followers_url":"https://api.github.com/users/huiser/followers","following_url":"https://api.github.com/users/huiser/following{/other_user}","gists_url":"https://api.github.com/users/huiser/gists{/gist_id}","starred_url":"https://api.github.com/users/huiser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huiser/subscriptions","organizations_url":"https://api.github.com/users/huiser/orgs","repos_url":"https://api.github.com/users/huiser/repos","events_url":"https://api.github.com/users/huiser/events{/privacy}","received_events_url":"https://api.github.com/users/huiser/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804423,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjM=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/duplicate","name":"duplicate","color":"cccccc","default":true,"description":null}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2021-03-12T15:21:26Z","updated_at":"2021-03-12T15:49:02Z","closed_at":"2021-03-12T15:48:54Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I try to compile tag v2.3.0 in a Debian bullseye docker container, but it fails with the following error:\r\n\r\n```\r\nroot@8a81ad28d485:/src/libvmod-dynamic# make \r\nmake  all-recursive\r\nmake[1]: Entering directory '/src/libvmod-dynamic'\r\nMaking all in src\r\nmake[2]: Entering directory '/src/libvmod-dynamic/src'\r\n  CCLD     libvmod_dynamic.la\r\n/usr/bin/ld: .libs/vmod_dynamic_service.o:/src/libvmod-dynamic/src/vmod_dynamic.h:181: multiple definition of `objects'; .libs/vmod_dynamic.o:/src/libvmod-dynamic/src/vmod_dynamic.h:181: first defined here\r\ncollect2: error: ld returned 1 exit status\r\nmake[2]: *** [Makefile:667: libvmod_dynamic.la] Error 1\r\nmake[2]: Leaving directory '/src/libvmod-dynamic/src'\r\nmake[1]: *** [Makefile:499: all-recursive] Error 1\r\nmake[1]: Leaving directory '/src/libvmod-dynamic'\r\nmake: *** [Makefile:410: all] Error 2\r\n```\r\n\r\nCommand to start container:\r\n```\r\ndocker run -ti --rm --name debian debian:bullseye-20210311-slim\r\n```","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/69/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/70","id":833597611,"node_id":"MDU6SXNzdWU4MzM1OTc2MTE=","number":70,"title":"Assert error in VRT_SetHealth(), cache/cache_vcl_vrt.c line 223","user":{"login":"wimsymons","id":1419117,"node_id":"MDQ6VXNlcjE0MTkxMTc=","avatar_url":"https://avatars.githubusercontent.com/u/1419117?v=4","gravatar_id":"","url":"https://api.github.com/users/wimsymons","html_url":"https://github.com/wimsymons","followers_url":"https://api.github.com/users/wimsymons/followers","following_url":"https://api.github.com/users/wimsymons/following{/other_user}","gists_url":"https://api.github.com/users/wimsymons/gists{/gist_id}","starred_url":"https://api.github.com/users/wimsymons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wimsymons/subscriptions","organizations_url":"https://api.github.com/users/wimsymons/orgs","repos_url":"https://api.github.com/users/wimsymons/repos","events_url":"https://api.github.com/users/wimsymons/events{/privacy}","received_events_url":"https://api.github.com/users/wimsymons/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":2228311103,"node_id":"MDU6TGFiZWwyMjI4MzExMTAz","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20%E2%99%A1Sponsor","name":"needs ♡Sponsor","color":"e094d3","default":false,"description":"looking for support ♥"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2021-03-17T09:58:35Z","updated_at":"2021-03-17T10:40:37Z","closed_at":"2021-03-17T10:40:37Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi,\r\n\r\nWe found a (concurrency?) bug, running on Varnish 6.1.1.\r\n\r\nNot sure that it is in this module, but it happened when a deploy occurred on the infrastructure behind on of the dynamic directors (AWS Beanstalk). The load balancer got new instances, thus the IP addresses changed.\r\n\r\nVarnish child dies, this is posted in the logs:\r\n```\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child (19522) not responding to CLI, killed it.\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Unexpected reply from ping: 400 CLI communication error (hdr)\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child (19522) died signal=6\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child (19522) Panic at: Tue, 16 Mar 2021 16:04:24 GMT\r\n                                                  Assert error in VRT_SetHealth(), cache/cache_vcl_vrt.c line 223:\r\n                                                    Condition((d) != NULL) not true.\r\n                                                  version = varnish-6.1.1 revision efc2f6c1536cf2272e471f5cff5f145239b19460, vrt api = 8.0\r\n                                                  ident = Linux,4.19.0-14-amd64,x86_64,-junix,-smalloc,-sdefault,-hcritbit,epoll\r\n                                                  now = 714264.543532 (mono), 1615910663.806864 (real)\r\n                                                  Backtrace:\r\n                                                    0x5616f60a3d2a: /usr/sbin/varnishd(+0x4cd2a) [0x5616f60a3d2a]\r\n                                                    0x5616f610bcc3: /usr/sbin/varnishd(VAS_Fail+0x13) [0x5616f610bcc3]\r\n                                                    0x5616f60b6c0b: /usr/sbin/varnishd(VRT_SetHealth+0x6b) [0x5616f60b6c0b]\r\n                                                    0x5616f6083520: /usr/sbin/varnishd(VBP_Remove+0x60) [0x5616f6083520]\r\n                                                    0x5616f607f83e: /usr/sbin/varnishd(+0x2883e) [0x5616f607f83e]\r\n                                                    0x5616f60b69d2: /usr/sbin/varnishd(VRT_DelDirector+0x112) [0x5616f60b69d2]\r\n                                                    0x5616f6081509: /usr/sbin/varnishd(VBE_Poll+0xc9) [0x5616f6081509]\r\n                                                    0x5616f6087d0d: /usr/sbin/varnishd(+0x30d0d) [0x5616f6087d0d]\r\n                                                    0x5616f610dd02: /usr/sbin/varnishd(+0xb6d02) [0x5616f610dd02]\r\n                                                    0x5616f610e369: /usr/sbin/varnishd(VCLS_Poll+0x2e9) [0x5616f610e369]\r\n                                                  thread = (cache-main)\r\n                                                  thr.req = (nil) {\r\n                                                  },\r\n                                                  thr.busyobj = (nil) {\r\n                                                  },\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child cleanup complete\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child (30911) Started\r\nMar 16 16:04:24 ip-172-22-84-104 varnishd[19503]: Child (30911) said Child starts\r\n```\r\n\r\nSome snippets from the VCL config:\r\n```\r\nprobe dynamic_probe {\r\n  .interval = 5s;\r\n  .timeout = 5s;\r\n  .initial = 3;\r\n  .threshold = 2;\r\n  .window = 3;\r\n  .request =\r\n    \"GET /health HTTP/1.1\"\r\n    \"User-Agent: Varnish Probe\"\r\n    \"Host: localhost\"\r\n    \"Connection: close\";\r\n}\r\n\r\n...\r\n\r\nsub vcl_init {\r\n  new dynamic_director = dynamic.director(\r\n    port = \"80\",\r\n    ttl = 2m,\r\n    connect_timeout = 3s,\r\n    first_byte_timeout = 10s,\r\n    between_bytes_timeout = 5s,\r\n    probe = dynamic_probe\r\n  );\r\n}\r\n```\r\n\r\nThe libvmod-dynamic module was compiled on Thu, 15 Oct 2020 09:12:00 +0000 against the latest code now on the 6.1 branch (https://github.com/nigoroll/libvmod-dynamic/commit/4931cfd08ad6f142a9f13b064c8a5aa0723f84a1).\r\n\r\nWe need to restart the [Varnish Prometheus exporter](https://github.com/jonnenauha/prometheus_varnish_exporter) after that to send out correct metrics after that, but that's another issue.","closed_by":{"login":"wimsymons","id":1419117,"node_id":"MDQ6VXNlcjE0MTkxMTc=","avatar_url":"https://avatars.githubusercontent.com/u/1419117?v=4","gravatar_id":"","url":"https://api.github.com/users/wimsymons","html_url":"https://github.com/wimsymons","followers_url":"https://api.github.com/users/wimsymons/followers","following_url":"https://api.github.com/users/wimsymons/following{/other_user}","gists_url":"https://api.github.com/users/wimsymons/gists{/gist_id}","starred_url":"https://api.github.com/users/wimsymons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wimsymons/subscriptions","organizations_url":"https://api.github.com/users/wimsymons/orgs","repos_url":"https://api.github.com/users/wimsymons/repos","events_url":"https://api.github.com/users/wimsymons/events{/privacy}","received_events_url":"https://api.github.com/users/wimsymons/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/70/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/71","id":910220237,"node_id":"MDExOlB1bGxSZXF1ZXN0NjYwNjc2MTE3","number":71,"title":"Add least connections and weighted least connections balancing algorithms","user":{"login":"karlvr","id":1086005,"node_id":"MDQ6VXNlcjEwODYwMDU=","avatar_url":"https://avatars.githubusercontent.com/u/1086005?v=4","gravatar_id":"","url":"https://api.github.com/users/karlvr","html_url":"https://github.com/karlvr","followers_url":"https://api.github.com/users/karlvr/followers","following_url":"https://api.github.com/users/karlvr/following{/other_user}","gists_url":"https://api.github.com/users/karlvr/gists{/gist_id}","starred_url":"https://api.github.com/users/karlvr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karlvr/subscriptions","organizations_url":"https://api.github.com/users/karlvr/orgs","repos_url":"https://api.github.com/users/karlvr/repos","events_url":"https://api.github.com/users/karlvr/events{/privacy}","received_events_url":"https://api.github.com/users/karlvr/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":443804424,"node_id":"MDU6TGFiZWw0NDM4MDQ0MjQ=","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/enhancement","name":"enhancement","color":"84b6eb","default":true,"description":null},{"id":2228311103,"node_id":"MDU6TGFiZWwyMjI4MzExMTAz","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20%E2%99%A1Sponsor","name":"needs ♡Sponsor","color":"e094d3","default":false,"description":"looking for support ♥"},{"id":2228316027,"node_id":"MDU6TGFiZWwyMjI4MzE2MDI3","url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/labels/needs%20varnish-cache","name":"needs varnish-cache","color":"006b75","default":false,"description":"needs work in varnish-cache"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2021-06-03T07:51:21Z","updated_at":"2023-01-05T04:40:45Z","closed_at":"2022-11-08T19:55:08Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/71","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/71","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/71.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/71.patch","merged_at":null},"body":"There is some code to tidy up in here (a x 1.25 particularly), but I am hoping to gauge your interest in merging something like this! I made these changes several years ago, and we've been running with these changes for all of that time. Although I did just port them to 6.6.\r\n\r\nLet me know and I'll work on making it beautiful with you!","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/71/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/72","id":942117663,"node_id":"MDU6SXNzdWU5NDIxMTc2NjM=","number":72,"title":"the counter main.backend-unhealthy in varnishstat dont work when use the libvmod-dynamic","user":{"login":"yeurin","id":1029571,"node_id":"MDQ6VXNlcjEwMjk1NzE=","avatar_url":"https://avatars.githubusercontent.com/u/1029571?v=4","gravatar_id":"","url":"https://api.github.com/users/yeurin","html_url":"https://github.com/yeurin","followers_url":"https://api.github.com/users/yeurin/followers","following_url":"https://api.github.com/users/yeurin/following{/other_user}","gists_url":"https://api.github.com/users/yeurin/gists{/gist_id}","starred_url":"https://api.github.com/users/yeurin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yeurin/subscriptions","organizations_url":"https://api.github.com/users/yeurin/orgs","repos_url":"https://api.github.com/users/yeurin/repos","events_url":"https://api.github.com/users/yeurin/events{/privacy}","received_events_url":"https://api.github.com/users/yeurin/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2021-07-12T14:21:43Z","updated_at":"2021-10-26T17:09:01Z","closed_at":"2021-10-26T17:09:01Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"hello, i'm using varnish 6.5.1, and libvmod-dynamic. and when i shut my backend define with the libvmod, varnish detect the unhealthy backend, switch to grace mode etc.. BUT, the counter MAIN.backend_unhealthy stay at 0. For information, i configured a health probe\r\n\r\nis there anything to do to correct that ?","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/72/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/73","id":998150632,"node_id":"I_kwDOBBOOTM47fpHo","number":73,"title":"`configure` doesn't read `libdir` from `varnishapi.pc`","user":{"login":"VasiliPupkin256","id":27725951,"node_id":"MDQ6VXNlcjI3NzI1OTUx","avatar_url":"https://avatars.githubusercontent.com/u/27725951?v=4","gravatar_id":"","url":"https://api.github.com/users/VasiliPupkin256","html_url":"https://github.com/VasiliPupkin256","followers_url":"https://api.github.com/users/VasiliPupkin256/followers","following_url":"https://api.github.com/users/VasiliPupkin256/following{/other_user}","gists_url":"https://api.github.com/users/VasiliPupkin256/gists{/gist_id}","starred_url":"https://api.github.com/users/VasiliPupkin256/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VasiliPupkin256/subscriptions","organizations_url":"https://api.github.com/users/VasiliPupkin256/orgs","repos_url":"https://api.github.com/users/VasiliPupkin256/repos","events_url":"https://api.github.com/users/VasiliPupkin256/events{/privacy}","received_events_url":"https://api.github.com/users/VasiliPupkin256/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2021-09-16T12:23:11Z","updated_at":"2021-10-26T16:22:37Z","closed_at":"2021-10-26T16:22:37Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"I see the variable is read in the scripts but it seems that it is only used for testing. When I run configure/make/install of the version 2.3.1 on Ubuntu 21.04 it tries to install module in `/usr/lib/varnish/vmods` instead of `/usr/lib/x86_64-linux-gnu/varnish/vmods` where it belongs on this repo. I've solved this with this hack\r\n\r\n    ./configure --without-getdns \\\r\n    --prefix=$(pkg-config --variable=prefix varnishapi) \\\r\n    --bindir=$(pkg-config --variable=bindir varnishapi) \\\r\n    --sbindir=$(pkg-config --variable=sbindir varnishapi) \\\r\n    --sysconfdir=$(pkg-config --variable=sysconfdir varnishapi) \\\r\n    --libdir=$(pkg-config --variable=libdir varnishapi)\r\n\r\nBut of course I don't like it. \r\n\r\nPS: I've tried to set `PKG_CONFIG_PATH` it doesn't change anything.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/73/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/74","id":1026076348,"node_id":"I_kwDOBBOOTM49KK68","number":74,"title":"test failing with varnish 6.6","user":{"login":"blacktek","id":42382745,"node_id":"MDQ6VXNlcjQyMzgyNzQ1","avatar_url":"https://avatars.githubusercontent.com/u/42382745?v=4","gravatar_id":"","url":"https://api.github.com/users/blacktek","html_url":"https://github.com/blacktek","followers_url":"https://api.github.com/users/blacktek/followers","following_url":"https://api.github.com/users/blacktek/following{/other_user}","gists_url":"https://api.github.com/users/blacktek/gists{/gist_id}","starred_url":"https://api.github.com/users/blacktek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blacktek/subscriptions","organizations_url":"https://api.github.com/users/blacktek/orgs","repos_url":"https://api.github.com/users/blacktek/repos","events_url":"https://api.github.com/users/blacktek/events{/privacy}","received_events_url":"https://api.github.com/users/blacktek/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2021-10-14T07:50:41Z","updated_at":"2021-10-26T16:12:27Z","closed_at":"2021-10-26T16:12:27Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hello,\r\n  we just installed this library on Varnish 6.6 and One of tests failed (out of 21):\r\n\r\n*** v1 CLI RX 106\r\n**** v1 CLI RX|Message from VCC-compiler:\r\n**** v1 CLI RX|Expected '{' got '+'\r\n**** v1 CLI RX|(program line 560), at\r\n**** v1 CLI RX|('<vcl.inline>' Line 7 Pos 27)\r\n**** v1 CLI RX| acl ipv4_loopback +log {\r\n**** v1 CLI RX|--------------------------#-----\r\n**** v1 CLI RX|\r\n**** v1 CLI RX|Running VCC-compiler failed, exited with 2\r\n**** v1 CLI RX|VCL compilation failed\r\n\r\n\r\n18 varnish v1 -vcl {\r\n19 import ${vmod_dynamic};\r\n20\r\n21 backend dummy { .host = \"${bad_ip}\"; .port = \"9080\"; }\r\n22\r\n23 acl ipv4_loopback +log {\r\n24 \"127/24\";\r\n25 }\r\n26\r\n27 sub vcl_init {\r\n28 new d1 = dynamic.director(\r\n29 port = \"${s1_port}\",\r\n30 whitelist = ipv4_loopback,\r\n31 domain_usage_timeout = 1s);\r\n32 d1.debug(true);\r\n33 }\r\n34\r\n35 sub vcl_recv {\r\n36 set req.backend_hint = d1.backend();\r\n37 }\r\n38 } -start\r\n\r\nCould you please make it working with Varnish 6.6?\r\n\r\nWhat are the consequences of the failed test?\r\n\r\nThank you","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/74/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/75","id":1027494200,"node_id":"I_kwDOBBOOTM49PlE4","number":75,"title":"Is \"master\" already ready for Varnish 7?","user":{"login":"ronaldploeger","id":2346952,"node_id":"MDQ6VXNlcjIzNDY5NTI=","avatar_url":"https://avatars.githubusercontent.com/u/2346952?v=4","gravatar_id":"","url":"https://api.github.com/users/ronaldploeger","html_url":"https://github.com/ronaldploeger","followers_url":"https://api.github.com/users/ronaldploeger/followers","following_url":"https://api.github.com/users/ronaldploeger/following{/other_user}","gists_url":"https://api.github.com/users/ronaldploeger/gists{/gist_id}","starred_url":"https://api.github.com/users/ronaldploeger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronaldploeger/subscriptions","organizations_url":"https://api.github.com/users/ronaldploeger/orgs","repos_url":"https://api.github.com/users/ronaldploeger/repos","events_url":"https://api.github.com/users/ronaldploeger/events{/privacy}","received_events_url":"https://api.github.com/users/ronaldploeger/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2021-10-15T14:19:45Z","updated_at":"2021-10-26T15:54:54Z","closed_at":"2021-10-26T15:54:54Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Is \"master\" already ready for Varnish 7.0.0?\r\n\r\nThanks and all the best,\r\nRonald","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/75/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/76","id":1044868162,"node_id":"PR_kwDOBBOOTM4uGT2M","number":76,"title":"Add the authority parameter to .director().","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2021-11-04T15:09:14Z","updated_at":"2023-07-07T13:59:13Z","closed_at":"2023-07-07T13:59:13Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":true,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/76","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/76","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/76.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/76.patch","merged_at":null},"body":"Previously this was always set to the value of the VRT_backend host\r\nheader. That is still the default, but with the new parameter a\r\ndifferent value may be set, or the parameter may be set to the\r\nempty string, to specify that no authority TLV should be sent.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/76/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/77","id":1045836082,"node_id":"I_kwDOBBOOTM4-VjEy","number":77,"title":"Cannot build on alpine:3.14","user":{"login":"alexpozzi","id":8307861,"node_id":"MDQ6VXNlcjgzMDc4NjE=","avatar_url":"https://avatars.githubusercontent.com/u/8307861?v=4","gravatar_id":"","url":"https://api.github.com/users/alexpozzi","html_url":"https://github.com/alexpozzi","followers_url":"https://api.github.com/users/alexpozzi/followers","following_url":"https://api.github.com/users/alexpozzi/following{/other_user}","gists_url":"https://api.github.com/users/alexpozzi/gists{/gist_id}","starred_url":"https://api.github.com/users/alexpozzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexpozzi/subscriptions","organizations_url":"https://api.github.com/users/alexpozzi/orgs","repos_url":"https://api.github.com/users/alexpozzi/repos","events_url":"https://api.github.com/users/alexpozzi/events{/privacy}","received_events_url":"https://api.github.com/users/alexpozzi/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2021-11-05T13:13:17Z","updated_at":"2021-11-08T10:32:20Z","closed_at":"2021-11-05T16:30:10Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hello,\r\nI'm trying to build this mod on alpine:3.14 (same version used by official Varnish alpine docker images) but I get the following error:\r\n```\r\n./configure: line 12848: syntax error: unexpected newline (expecting \")\")\r\nThe command '/bin/sh -c cd /tmp && curl -sSLO https://github.com/nigoroll/libvmod-dynamic/archive/v${LIBVMOD_DYNAMIC_VERSION}.zip &&   unzip v${LIBVMOD_DYNAMIC_VERSION}.zip && cd libvmod-dynamic-${LIBVMOD_DYNAMIC_VERSION} &&   ./autogen.sh && ./configure && make && make install' returned a non-zero code: 2\r\n```\r\n\r\nExample Dockerfile to reproduce the problem:\r\n```\r\nFROM alpine:3.14 AS prod\r\nENV LIBVMOD_DYNAMIC_VERSION=2.3.1\r\nRUN apk --no-cache add automake autoconf libtool make curl python3 py3-sphinx py-docutils pkgconf \\\r\n                     gcc make g++ zlib-dev pcre-dev libedit-dev readline-dev libexecinfo-dev linux-headers \\\r\n                     varnish varnish-dev\r\n\r\nRUN cd /tmp && curl -sSLO https://github.com/nigoroll/libvmod-dynamic/archive/v${LIBVMOD_DYNAMIC_VERSION}.zip && \\\r\n  unzip v${LIBVMOD_DYNAMIC_VERSION}.zip && cd libvmod-dynamic-${LIBVMOD_DYNAMIC_VERSION} && \\\r\n  ./autogen.sh && ./configure && make && make install\r\n```\r\n\r\nIs there something I'm missing?\r\nDo you have any hint on how to solve the issue?\r\n\r\nThank you!","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/77/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/78","id":1112007836,"node_id":"I_kwDOBBOOTM5CR-Sc","number":78,"title":"Deadlock on service lookup when all contexts in use","user":{"login":"jake-dog","id":20374198,"node_id":"MDQ6VXNlcjIwMzc0MTk4","avatar_url":"https://avatars.githubusercontent.com/u/20374198?v=4","gravatar_id":"","url":"https://api.github.com/users/jake-dog","html_url":"https://github.com/jake-dog","followers_url":"https://api.github.com/users/jake-dog/followers","following_url":"https://api.github.com/users/jake-dog/following{/other_user}","gists_url":"https://api.github.com/users/jake-dog/gists{/gist_id}","starred_url":"https://api.github.com/users/jake-dog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jake-dog/subscriptions","organizations_url":"https://api.github.com/users/jake-dog/orgs","repos_url":"https://api.github.com/users/jake-dog/repos","events_url":"https://api.github.com/users/jake-dog/events{/privacy}","received_events_url":"https://api.github.com/users/jake-dog/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2022-01-23T22:43:48Z","updated_at":"2025-01-02T16:02:33Z","closed_at":"2022-01-24T10:07:41Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Observed on b72c723acff5b2ef46c9de8cef036cee3a380a64 (`6.0` branch).\r\n\r\nA deadlock can occur when looking up a service record with a `vmod_dynamic.resolver` that has run out of contexts (`parallel` argument to resolver constructor).  One thread will wait infinitely for a context so it may resolve the domain returned by the SRV record, and the other thread will wait infinitely for the `dom->resolve` condition to be set before it releases the context.\r\n\r\nPer the following thread stack traces: thread 957 is waiting for the condition `dom->resolve` while holding a resolver context; thread 972 is waiting for a resolver context so it can set the condition `dom->resolve`.\r\n\r\n```\r\nThread 957 (Thread 0x7fcf717ea700 (LWP 350411)):\r\n#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238\r\n#1  0x0000000000436bf6 in Lck_CondWait ()\r\n#2  0x00007fd1b4df21c9 in service_doms (prios=0x7fd1b0631080, obj=0x7fd1c341a440, ctx=0x7fcf717e9e10) at vmod_dynamic_service.c:266\r\n#3  service_update (res=0x7fd1b4ffb360 <res_getdns>, now=1642054171.002723, priv=<optimized out>, srv=0x7fd16a822300) at vmod_dynamic_service.c:424\r\n#4  service_lookup_thread (priv=0x7fd16a822300) at vmod_dynamic_service.c:496\r\n#5  0x00007fd1c405eea5 in start_thread (arg=0x7fcf717ea700) at pthread_create.c:307\r\n#6  0x00007fd1c3d879fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111\r\n\r\nThread 972 (Thread 0x7fcf6a7dc700 (LWP 350426)):\r\n#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185\r\n#1  0x00007fd1b4df5063 in dyn_getdns_get_context (r=r@entry=0x7fd1c341da80) at dyn_getdns.c:64\r\n#2  0x00007fd1b4df5f16 in getdns_lookup (r=0x7fd1c341da80, node=0x7fd1c34d5dc0 \"redacted.example.svc.cluster.local.\", service=0x7fd1c34d7120 \"42667\", priv=0x7fcf6a7dbc70) at dyn_resolver_getdns.c:183\r\n#3  0x00007fd1b4ded90e in dynamic_lookup_thread (priv=0x7fd1c35c6700) at vmod_dynamic.c:490\r\n#4  0x00007fd1c405eea5 in start_thread (arg=0x7fcf6a7dc700) at pthread_create.c:307\r\n#5  0x00007fd1c3d879fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111\r\n```\r\n\r\nThe possibility of a deadlock is the result of the context not being released until after the service is updated in the function `service_lookup_thread`.\r\n\r\n1. A resolver context is obtained\r\nhttps://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L488\r\n\r\n2. Update service, which requires condition be set by other thread(s) attaining resolver context\r\nhttps://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L496\r\n\r\n3. Release context obtained in step 1\r\nhttps://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L517\r\n\r\nTo eliminate the possibility of a deadlock the resolver context needs to be released (`res->srv_fini(&res_priv)` from [line 517](https://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L517)) prior to [locking/waiting on the `dom->resolve` condition](https://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L262-L270).  This could _probably_ be done most easily by moving the `srv_fini()` call to [line 423](https://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L423), just before the call to `service_doms()`, and adding another `srv_fini()` to handle the [`else` condition](https://github.com/nigoroll/libvmod-dynamic/blob/b72c723acff5b2ef46c9de8cef036cee3a380a64/src/vmod_dynamic_service.c#L510).\r\n\r\nA possible workaround for anyone impacted by this issue is set a larger value for `parallel` (defaut: 16) in the resolver constructor.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/78/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/79","id":1119737295,"node_id":"PR_kwDOBBOOTM4x2ouU","number":79,"title":"Declare $ABI vrt.","user":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2022-01-31T17:41:30Z","updated_at":"2022-02-02T08:19:32Z","closed_at":"2022-02-02T08:19:32Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/79","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/79","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/79.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/79.patch","merged_at":"2022-02-02T08:19:32Z"},"body":"As far as I can tell, the VMOD code conforms to VRT. @nigoroll please make your own judgment on that, I may have missed something.\r\n\r\nVRT makes like easier when there's a Varnish version update that doesn't change the VRT version -- the VMOD usually doesn't have to be updated. With $ABI strict, we have to update the VMOD even if nothing changes except the Varnish commit ID.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/79/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/80","id":1125025593,"node_id":"I_kwDOBBOOTM5DDoc5","number":80,"title":"no release works with 7.0.2","user":{"login":"gquintard","id":3776553,"node_id":"MDQ6VXNlcjM3NzY1NTM=","avatar_url":"https://avatars.githubusercontent.com/u/3776553?v=4","gravatar_id":"","url":"https://api.github.com/users/gquintard","html_url":"https://github.com/gquintard","followers_url":"https://api.github.com/users/gquintard/followers","following_url":"https://api.github.com/users/gquintard/following{/other_user}","gists_url":"https://api.github.com/users/gquintard/gists{/gist_id}","starred_url":"https://api.github.com/users/gquintard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gquintard/subscriptions","organizations_url":"https://api.github.com/users/gquintard/orgs","repos_url":"https://api.github.com/users/gquintard/repos","events_url":"https://api.github.com/users/gquintard/events{/privacy}","received_events_url":"https://api.github.com/users/gquintard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"assignees":[{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":null,"comments":4,"created_at":"2022-02-05T20:37:35Z","updated_at":"2022-03-01T18:23:49Z","closed_at":"2022-03-01T11:58:52Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Unless I'm mistaken, `2.5.0` is the latest tag, and has `VARNISH_PREREQ([6.6.0],[7.0.0])`, preventing it from building again `7.0.2`\r\nI can of course pick the top of master, but I'd like to package this vmod into the official `docker` image, and so having an official tag/release would be nice","closed_by":{"login":"slimhazard","id":6084911,"node_id":"MDQ6VXNlcjYwODQ5MTE=","avatar_url":"https://avatars.githubusercontent.com/u/6084911?v=4","gravatar_id":"","url":"https://api.github.com/users/slimhazard","html_url":"https://github.com/slimhazard","followers_url":"https://api.github.com/users/slimhazard/followers","following_url":"https://api.github.com/users/slimhazard/following{/other_user}","gists_url":"https://api.github.com/users/slimhazard/gists{/gist_id}","starred_url":"https://api.github.com/users/slimhazard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slimhazard/subscriptions","organizations_url":"https://api.github.com/users/slimhazard/orgs","repos_url":"https://api.github.com/users/slimhazard/repos","events_url":"https://api.github.com/users/slimhazard/events{/privacy}","received_events_url":"https://api.github.com/users/slimhazard/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/80/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/81","id":1142330043,"node_id":"I_kwDOBBOOTM5EFpK7","number":81,"title":"Assertion error for service with purged dynamic_domain","user":{"login":"jake-dog","id":20374198,"node_id":"MDQ6VXNlcjIwMzc0MTk4","avatar_url":"https://avatars.githubusercontent.com/u/20374198?v=4","gravatar_id":"","url":"https://api.github.com/users/jake-dog","html_url":"https://github.com/jake-dog","followers_url":"https://api.github.com/users/jake-dog/followers","following_url":"https://api.github.com/users/jake-dog/following{/other_user}","gists_url":"https://api.github.com/users/jake-dog/gists{/gist_id}","starred_url":"https://api.github.com/users/jake-dog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jake-dog/subscriptions","organizations_url":"https://api.github.com/users/jake-dog/orgs","repos_url":"https://api.github.com/users/jake-dog/repos","events_url":"https://api.github.com/users/jake-dog/events{/privacy}","received_events_url":"https://api.github.com/users/jake-dog/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2022-02-18T04:28:18Z","updated_at":"2023-07-21T03:10:00Z","closed_at":"2023-07-03T15:01:52Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Observed on 5c1c68b (w/ varnish 6.0.9) and b72c723 (w/ varnish 6.0.7).\r\n\r\n```\r\nPanic at: Fri, 28 Jan 2022 04:08:36 GMT\r\nAssert error in service_resolve(), vmod_dynamic_service.c line 150:\r\n  Condition((t->dom)->magic == 0x1bfe1345) not true.\r\nversion = varnish-6.0.9 revision 3383d3d02c6ee459f20e1f46cfcb9692726a6387, vrt api = 7.1\r\nident = Linux,5.4.77-flatcar,x86_64,-junix,-smalloc,-sdefault,-hcritbit,epoll\r\nnow = 18260503.813988 (mono), 1643342916.576233 (real)\r\nBacktrace:\r\n  0x43c46e: varnishd() [0x43c46e]\r\n  0x49f272: varnishd(VAS_Fail+0x42) [0x49f272]\r\n  0x7fb8159f13da: ./vmod_cache/_vmod_dynamic.04887395d86555991e34ec9874763b01e23b00135a5367941f17a5e0076a9451(+0x83da) [0x7fb8159f13da]\r\n  0x4216a3: varnishd() [0x4216a3]\r\n  0x421d83: varnishd(VDI_GetHdr+0x33) [0x421d83]\r\n  0x42a859: varnishd() [0x42a859]\r\n  0x45a4db: varnishd() [0x45a4db]\r\n  0x45a9c0: varnishd() [0x45a9c0]\r\n  0x7fb8257d2ea5: /lib64/libpthread.so.0(+0x7ea5) [0x7fb8257d2ea5]\r\n  0x7fb8254fbb0d: /lib64/libc.so.6(clone+0x6d) [0x7fb8254fbb0d]\r\n```\r\n\r\n[Full panic output from VTC test log.](https://github.com/nigoroll/libvmod-dynamic/files/8113720/r81.log)\r\n\r\n## Reproduction steps\r\n\r\nA [gist has been created with VTC](https://gist.github.com/jake-dog/25a77e193c406bf5744005fa7a021e9d) that reproduces the panic.  Please follow the instructions inside of the gist, which includes installing and configuring dnsmasq.\r\n\r\nOther test conditions, such as changing A names in SRV responses, have also succeeded in reproducing the assertion error.\r\n\r\n## Investigation\r\n\r\nThe assertion error was not reproducible when `dynamic_domain` usage timeout checks were hardcoded out, blocking timeout purges in the [`dynamic_search`](https://github.com/nigoroll/libvmod-dynamic/blob/5c1c68b7914a10726d724ad8c60562019baa6371/src/vmod_dynamic.c#L650) function, demonstrating that the bug occurs when a `dynamic_domain` is purged while still referenced by a `dynamic_service`.\r\n\r\nThe life cycles of `dynamic_domain` structs, and the `dynamic_service` structs which reference them, are not tightly coupled.  Under specific conditions data races are possible.\r\n\r\nOne such scenario, as demonstrated in the provided VTC, involves three components:\r\n\r\n1. `dynamic_domain` structs exclusively referenced by a `dynamic_service` only have their `last_used` property updated when SRV resolve is successful ([code](https://github.com/nigoroll/libvmod-dynamic/blob/5c1c68b7914a10726d724ad8c60562019baa6371/src/vmod_dynamic_service.c#L245))\r\n2. the delay between SRV resolves is set to `obj->ttl` when the previous DNS resolve fails ([code](https://github.com/nigoroll/libvmod-dynamic/blob/5c1c68b7914a10726d724ad8c60562019baa6371/src/vmod_dynamic_service.c#L522))\r\n3. when retrieving a specific `dynamic_domain`, any active domain which doesn't match is subject to a timeout purge ([code](https://github.com/nigoroll/libvmod-dynamic/blob/5c1c68b7914a10726d724ad8c60562019baa6371/src/vmod_dynamic.c#L670))\r\n\r\nWith these components a panic can be instigated via a simple sequence of requests and DNS failures:\r\n\r\n1. Send a request for a valid `d.service` with DNS running\r\n2. Kill/block DNS\r\n3. Send several more requests to the same `d.service` from step 1 until DNS resolve timeout occurs\r\n4. Enable/unblock DNS\r\n5. Send several requests for a different `d.service` to trigger a timeout purge of the `d.service` from step 1\r\n6. Continue sending requests to the `d.service` from step 1 until panic\r\n\r\nThis sequence of lookups, and purges, looks like this (from provided VTC log):\r\n\r\n```\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Lookup: 1645503346.958248 0.000000 0.000000\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Results: 1645503346.958876 0.000628 0.000628\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Lookup: 1645503346.959250 0.000000 0.000000\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Results: 1645503346.959764 0.000514 0.000514\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Update: 1645503346.959862 0.000613 0.000099\r\n**** v1    0.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Update: 1645503346.959927 0.001679 0.001051\r\n**** v1    2.2 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Lookup: 1645503348.470227 0.000000 0.000000\r\n**** v1    7.3 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Results: 1645503353.475618 5.005390 5.005390\r\n**** v1    7.3 vsl|          0 Error           - vmod-dynamic: vcl1 d1 _http._tcp.p-test-3.example.svc.cluster.local getdns 902 (All queries for the name timed out)\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Lookup: 1645503362.042588 0.000000 0.000000\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Results: 1645503362.043147 0.000558 0.000558\r\n**** v1   15.8 vsl|          0 VCL_Log         - vmod-dynamic: vcl1 d1 p-test-3.example.svc.cluster.local.:8893 timeout\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Done: 1645503362.043266 0.000000 0.000000\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Lookup: 1645503362.043516 0.000000 0.000000\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Results: 1645503362.043797 0.000281 0.000281\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Update: 1645503362.043895 0.000379 0.000098\r\n**** v1   15.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Update: 1645503362.043962 0.001374 0.000815\r\n**** v1   17.3 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Lookup: 1645503363.554317 0.000000 0.000000\r\n**** v1   17.3 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Results: 1645503363.554597 0.000280 0.000280\r\n**** v1   17.3 vsl|          0 VCL_Log         - vmod-dynamic: vcl1 d1 p-test-3.example.svc.cluster.local.:8893 deleted\r\n**** v1   17.3 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Update: 1645503363.554614 0.000297 0.000017\r\n```\r\n\r\nNote that the service `_http._tcp.p-test-3.example.svc.cluster.local` is still active, and has not changed, but the domain it points to `p-test-3.example.svc.cluster.local` has timed out and was eventually deleted.\r\n\r\n## Solutions\r\n\r\nThough not completely without the possibility of data races, and not tested, the following should avoid the bulk of the race conditions.  Based on 5c1c68b\r\n\r\n```diff\r\ndiff --git a/src/vmod_dynamic_service.c b/src/vmod_dynamic_service.c\r\nindex 2140a2d..c77ca06 100644\r\n--- a/src/vmod_dynamic_service.c\r\n+++ b/src/vmod_dynamic_service.c\r\n@@ -521,3 +521,6 @@ service_lookup_thread(void *priv)\r\n                            res->name, ret, res->strerror(ret));\r\n-                       srv->deadline = results + obj->ttl;\r\n+                       if (obj->ttl < obj->domain_usage_tmo / 2)\r\n+                               srv->deadline = results + obj->ttl;\r\n+                       else\r\n+                               srv->deadline = results + (obj->domain_usage_tmo / 2);\r\n                        dbg_res_details(NULL, srv->obj, res, res_priv);\r\n@@ -737,2 +740,5 @@ vmod_director_service(VRT_CTX, struct VPFX(dynamic_director) *obj,\r\n        struct dynamic_service *srv;\r\n+       const struct service_prios *prios;\r\n+       const struct service_prio *p;\r\n+       const struct service_target *t;\r\n        CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);\r\n@@ -750,2 +756,16 @@ vmod_director_service(VRT_CTX, struct VPFX(dynamic_director) *obj,\r\n        srv->last_used = ctx->now;\r\n+\r\n+       VRMB();\r\n+       prios = srv->prios;\r\n+\r\n+       if (prios != NULL) {\r\n+               VTAILQ_FOREACH(p, &prios->head, list) {\r\n+                       CHECK_OBJ_NOTNULL(p, SERVICE_PRIO_MAGIC);\r\n+                       VTAILQ_FOREACH(t, &p->targets, list) {\r\n+                               CHECK_OBJ_NOTNULL(t, SERVICE_TARGET_MAGIC);\r\n+                               CHECK_OBJ_NOTNULL(t->dom, DYNAMIC_DOMAIN_MAGIC);\r\n+                               t->dom->last_used = ctx->now;\r\n+                       }\r\n+               }\r\n+       }\r\n        Lck_Unlock(&obj->mtx);\r\n```\r\n\r\nThe problems with the trivial solution include:\r\n\r\n* still possibility of data races\r\n  * multiple services using a shared domain\r\n  * multiple unique services with unique domains causing thread races to purge timed out domains\r\n* pattern of SRV resolves is inconsistent and diverges from user configuration\r\n\r\nI've sent #82 introducing minimal reference counting logic to block `dynamic_domain` timeout purges while referenced by a `dynamic_service`, thus tightly coupling them.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/81/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/82","id":1142330257,"node_id":"PR_kwDOBBOOTM4zCxtc","number":82,"title":"Fixing domain purge data race","user":{"login":"jake-dog","id":20374198,"node_id":"MDQ6VXNlcjIwMzc0MTk4","avatar_url":"https://avatars.githubusercontent.com/u/20374198?v=4","gravatar_id":"","url":"https://api.github.com/users/jake-dog","html_url":"https://github.com/jake-dog","followers_url":"https://api.github.com/users/jake-dog/followers","following_url":"https://api.github.com/users/jake-dog/following{/other_user}","gists_url":"https://api.github.com/users/jake-dog/gists{/gist_id}","starred_url":"https://api.github.com/users/jake-dog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jake-dog/subscriptions","organizations_url":"https://api.github.com/users/jake-dog/orgs","repos_url":"https://api.github.com/users/jake-dog/repos","events_url":"https://api.github.com/users/jake-dog/events{/privacy}","received_events_url":"https://api.github.com/users/jake-dog/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2022-02-18T04:28:41Z","updated_at":"2023-07-03T15:32:58Z","closed_at":"2023-07-03T15:32:57Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/82","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/82","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/82.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/82.patch","merged_at":null},"body":"# What's new\r\n\r\n* fix #81 with a ref counter on `dynamic_domains` linked to `dynamic_services`\r\n* fix SRV resolve TTL so it isn't limited by [`0.5 * domain_usage_tmo`](https://github.com/nigoroll/libvmod-dynamic/blob/5c1c68b7914a10726d724ad8c60562019baa6371/src/vmod_dynamic_service.c#L513-L515)\r\n* fix `dynamic_domain` timeout behavior for `dynamic_domains` linked to `dynamic_services`\r\n\r\n# Why\r\n\r\nThere are several scenarios to consider when fixing #81.  A `dynamic_domain` could be linked to zero or more `dynamic_services`, and/or a `dynamic_domain` linked to `dynamic_service` could be called directly via `d.backend`.   A simple reference counter accommodates all of these possibilities, and prevents all services/domain timeout related data races.  In a word, it is bombproof.\r\n\r\nTimeout initiated purges will be blocked for all `dynamic_domain` structs referenced by `dynamic_services`.  Only after a `dynamic_service` is purged will the corresponding `dynamic_domain` ref counter(s) be decremented. \r\n\r\nWhile adding the ref counter logic I discovered two other unexpected behaviors which were linked to each other:\r\n\r\n* SRV resolve TTL is limited to `0.5 * domain_usage_tmo` or `obj->ttl` (whichever is smaller)\r\n* domains exclusively linked to services had `last_used` updated only when SRV resolve succeeded\r\n\r\nThese behaviors together formed a partially protective layer against early purge of service linked domains.  The addition of a ref counter to service linked domains removes the need for previous workarounds, fixes all early purge vulnerabilities, and makes the behavior of `d.backend` and `d.service` consistent and predictable.\r\n\r\nThis branch passed the [`r81.vtc`](https://gist.github.com/jake-dog/25a77e193c406bf5744005fa7a021e9d) test, and produces the following expected pattern of dynamic backends:\r\n\r\n```\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Lookup: 1645504100.142287 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Results: 1645504100.142864 0.000577 0.000577\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Lookup: 1645504100.143254 0.000000 0.000000\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Results: 1645504100.143684 0.000430 0.000430\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-3.example.svc.cluster.local.:8893) Update: 1645504100.143806 0.000552 0.000122\r\n**** v1    0.6 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-3.example.svc.cluster.local) Update: 1645504100.143882 0.001595 0.001019\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Lookup: 1645504115.210968 0.000000 0.000000\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Results: 1645504115.211497 0.000529 0.000529\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Lookup: 1645504115.211926 0.000000 0.000000\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Results: 1645504115.212421 0.000495 0.000495\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(p-test-2.example.svc.cluster.local.:8892) Update: 1645504115.212502 0.000576 0.000081\r\n**** v1   15.7 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Update: 1645504115.212528 0.001560 0.001031\r\n**** v1   18.8 vsl|          0 Timestamp       - vmod-dynamic vcl1.d1(srv _http._tcp.p-test-2.example.svc.cluster.local) Done: 1645504118.317811 0.000000 0.000000\r\n**** v1   18.8 vsl|       1039 VCL_Log         c vmod-dynamic: vcl1 d1 _http._tcp.p-test-2.example.svc.cluster.local timeout\r\n**** v1   19.8 vsl|       1041 VCL_Log         c vmod-dynamic: vcl1 d1 _http._tcp.p-test-2.example.svc.cluster.local deleted\r\n```\r\n\r\n# Performance Considerations\r\n\r\nWhen an existing service is resolved, and no changes are made, no additional locking is necessary, however extra looping over `srv->prios` is still required to determine if refcounts changed.  Only when an existing service is resolved, and domains are removed from it, is additional locking required to decrement refcounts.\r\n\r\nAn additional loop of `srv->prios` was also added to each `d.service` call to ensure that `last_used` was updated for all linked domains, ensuring that domain timeout behavior will be consistent when the service changes or is removed.\r\n\r\nIn testing with a fairly small number of service backends (5-10), each containing only a single A record, I saw no measurable difference in CPU usage at high transaction rates (3k-5k req/s).","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/82/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/83","id":1150626937,"node_id":"I_kwDOBBOOTM5ElSx5","number":83,"title":"Unguarded use-after-free in dynamic_resolve","user":{"login":"rezan","id":1030507,"node_id":"MDQ6VXNlcjEwMzA1MDc=","avatar_url":"https://avatars.githubusercontent.com/u/1030507?v=4","gravatar_id":"","url":"https://api.github.com/users/rezan","html_url":"https://github.com/rezan","followers_url":"https://api.github.com/users/rezan/followers","following_url":"https://api.github.com/users/rezan/following{/other_user}","gists_url":"https://api.github.com/users/rezan/gists{/gist_id}","starred_url":"https://api.github.com/users/rezan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rezan/subscriptions","organizations_url":"https://api.github.com/users/rezan/orgs","repos_url":"https://api.github.com/users/rezan/repos","events_url":"https://api.github.com/users/rezan/events{/privacy}","received_events_url":"https://api.github.com/users/rezan/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2022-02-25T16:17:10Z","updated_at":"2023-06-30T05:38:42Z","closed_at":"2023-06-30T05:38:42Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"There is an unguarded use-after-free error [here in vmod_dynamic.c](https://github.com/nigoroll/libvmod-dynamic/blob/9666973952f62110c872d720af3dae0b85b4b597/src/vmod_dynamic.c#L160). This affects all versions of `vmod_dynamic`, potentially all the way back to 4.1. This is unguarded meaning there are no magic checks preventing this from happening or being exploited.\r\n\r\n**Cause**\r\n\r\nResolve a director while doing a plain DNS update where a backend is deleted. Note that without a magic check, this use-after-free is undetectable without extra memory checks.\r\n\r\n**Outcome**\r\n\r\nNothing, a crash/panic, or you can land on a different random backend or an attacker controlled backend.\r\n\r\n**Fix**\r\n\r\n* Add magic checks to all dynamic structs. This is how the bug was uncovered.\r\n* Move the `struct dynamic_ref *next` [dereference in question](https://github.com/nigoroll/libvmod-dynamic/blob/9666973952f62110c872d720af3dae0b85b4b597/src/vmod_dynamic.c#L160) up into the locked section. Grab a reference to the director there and return it.\r\n\r\nI will not be making a PR for this and this has not been reported anywhere else.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/83/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/84","id":1170732528,"node_id":"I_kwDOBBOOTM5Fx_Xw","number":84,"title":"A branch dedicated to 7.1?","user":{"login":"anthosz","id":14294064,"node_id":"MDQ6VXNlcjE0Mjk0MDY0","avatar_url":"https://avatars.githubusercontent.com/u/14294064?v=4","gravatar_id":"","url":"https://api.github.com/users/anthosz","html_url":"https://github.com/anthosz","followers_url":"https://api.github.com/users/anthosz/followers","following_url":"https://api.github.com/users/anthosz/following{/other_user}","gists_url":"https://api.github.com/users/anthosz/gists{/gist_id}","starred_url":"https://api.github.com/users/anthosz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anthosz/subscriptions","organizations_url":"https://api.github.com/users/anthosz/orgs","repos_url":"https://api.github.com/users/anthosz/repos","events_url":"https://api.github.com/users/anthosz/events{/privacy}","received_events_url":"https://api.github.com/users/anthosz/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2022-03-16T09:07:22Z","updated_at":"2022-04-07T12:42:38Z","closed_at":"2022-04-07T12:42:38Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hello,\r\n\r\nIs it planned to create a branch dedicated to 7.1 or we simply need to use master?\r\n\r\nBest regards,","closed_by":{"login":"anthosz","id":14294064,"node_id":"MDQ6VXNlcjE0Mjk0MDY0","avatar_url":"https://avatars.githubusercontent.com/u/14294064?v=4","gravatar_id":"","url":"https://api.github.com/users/anthosz","html_url":"https://github.com/anthosz","followers_url":"https://api.github.com/users/anthosz/followers","following_url":"https://api.github.com/users/anthosz/following{/other_user}","gists_url":"https://api.github.com/users/anthosz/gists{/gist_id}","starred_url":"https://api.github.com/users/anthosz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anthosz/subscriptions","organizations_url":"https://api.github.com/users/anthosz/orgs","repos_url":"https://api.github.com/users/anthosz/repos","events_url":"https://api.github.com/users/anthosz/events{/privacy}","received_events_url":"https://api.github.com/users/anthosz/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/84/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/issues/85","id":1175165710,"node_id":"I_kwDOBBOOTM5GC5sO","number":85,"title":"Support for arm containers on m1 mac","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2022-03-21T10:17:07Z","updated_at":"2022-04-21T10:58:40Z","closed_at":"2022-04-21T10:58:40Z","author_association":"NONE","active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"Hi,\r\n\r\nI'm building varnish containers for amd64 and arm64 using this vmod. While it's working well on amd64 and it also works well when I'm using an arm64 linux server it's not working for desktop users using m1 mac.\r\n\r\nThey got the following error:\r\n```\r\nError:\r\nvarnish_1        | Message from VCC-compiler:\r\nvarnish_1        | Could not open VMOD dynamic\r\nvarnish_1        | \tFile name: /usr/lib/varnish/vmods/libvmod_dynamic.so\r\nvarnish_1        | \tdlerror: /usr/lib/varnish/vmods/libvmod_dynamic.so: undefined symbol: vmb_pthread\r\nvarnish_1        | ('/etc/varnish/default.vcl' Line 5 Pos 8)\r\nvarnish_1        | import dynamic;\r\nvarnish_1        | -------#######-\r\nvarnish_1        | \r\n```\r\n\r\nThe Dockerfile I'm using:\r\nhttps://github.com/rewardenv/reward/blob/main/images/varnish/debian/6.5/Dockerfile\r\n\r\n\r\nRelated issue:\r\nhttps://github.com/rewardenv/reward/issues/17","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/85/timeline","performed_via_github_app":null,"state_reason":"completed"},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/86","id":1187420285,"node_id":"PR_kwDOBBOOTM41XT3a","number":86,"title":"align vmb.h with the varnish version","user":{"login":"gquintard","id":3776553,"node_id":"MDQ6VXNlcjM3NzY1NTM=","avatar_url":"https://avatars.githubusercontent.com/u/3776553?v=4","gravatar_id":"","url":"https://api.github.com/users/gquintard","html_url":"https://github.com/gquintard","followers_url":"https://api.github.com/users/gquintard/followers","following_url":"https://api.github.com/users/gquintard/following{/other_user}","gists_url":"https://api.github.com/users/gquintard/gists{/gist_id}","starred_url":"https://api.github.com/users/gquintard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gquintard/subscriptions","organizations_url":"https://api.github.com/users/gquintard/orgs","repos_url":"https://api.github.com/users/gquintard/repos","events_url":"https://api.github.com/users/gquintard/events{/privacy}","received_events_url":"https://api.github.com/users/gquintard/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2022-03-31T02:47:21Z","updated_at":"2022-06-07T10:02:45Z","closed_at":"2022-04-21T10:58:40Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/86","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/86","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/86.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/86.patch","merged_at":"2022-04-21T10:58:40Z"},"body":"fixes #85\r\n\r\nit shouldn't break 7.0- as the header file predates it, but I haven't tested it","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/86/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/87","id":1334710826,"node_id":"PR_kwDOBBOOTM489mU0","number":87,"title":"align vmb.h with the varnish version","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2022-08-10T14:23:30Z","updated_at":"2022-08-10T14:49:54Z","closed_at":"2022-08-10T14:49:54Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/87","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/87","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/87.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/87.patch","merged_at":"2022-08-10T14:49:54Z"},"body":"I open these pull requests to apply @gquintard 's fix on ARM builds for older varnish versions.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/87/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/88","id":1334710920,"node_id":"PR_kwDOBBOOTM489mWM","number":88,"title":"align vmb.h with the varnish version","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2022-08-10T14:23:35Z","updated_at":"2022-08-10T14:50:03Z","closed_at":"2022-08-10T14:50:03Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/88","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/88","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/88.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/88.patch","merged_at":"2022-08-10T14:50:03Z"},"body":"I open these pull requests to apply @gquintard 's fix on ARM builds for older varnish versions.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/88/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/89","id":1334711085,"node_id":"PR_kwDOBBOOTM489mYZ","number":89,"title":"align vmb.h with the varnish version","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2022-08-10T14:23:41Z","updated_at":"2022-08-10T14:50:11Z","closed_at":"2022-08-10T14:50:11Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/89","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/89","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/89.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/89.patch","merged_at":"2022-08-10T14:50:11Z"},"body":"I open these pull requests to apply @gquintard 's fix on ARM builds for older varnish versions.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/89/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/90","id":1334711147,"node_id":"PR_kwDOBBOOTM489mZO","number":90,"title":"align vmb.h with the varnish version","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2022-08-10T14:23:44Z","updated_at":"2022-08-10T14:50:19Z","closed_at":"2022-08-10T14:50:19Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/90","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/90","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/90.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/90.patch","merged_at":"2022-08-10T14:50:19Z"},"body":"I open these pull requests to apply @gquintard 's fix on ARM builds for older varnish versions.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/90/timeline","performed_via_github_app":null,"state_reason":null},{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91","repository_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic","labels_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91/comments","events_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91/events","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/91","id":1334711226,"node_id":"PR_kwDOBBOOTM489maX","number":91,"title":"align vmb.h with the varnish version","user":{"login":"janosmiko","id":693558,"node_id":"MDQ6VXNlcjY5MzU1OA==","avatar_url":"https://avatars.githubusercontent.com/u/693558?v=4","gravatar_id":"","url":"https://api.github.com/users/janosmiko","html_url":"https://github.com/janosmiko","followers_url":"https://api.github.com/users/janosmiko/followers","following_url":"https://api.github.com/users/janosmiko/following{/other_user}","gists_url":"https://api.github.com/users/janosmiko/gists{/gist_id}","starred_url":"https://api.github.com/users/janosmiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janosmiko/subscriptions","organizations_url":"https://api.github.com/users/janosmiko/orgs","repos_url":"https://api.github.com/users/janosmiko/repos","events_url":"https://api.github.com/users/janosmiko/events{/privacy}","received_events_url":"https://api.github.com/users/janosmiko/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2022-08-10T14:23:48Z","updated_at":"2022-08-10T14:50:26Z","closed_at":"2022-08-10T14:50:26Z","author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/pulls/91","html_url":"https://github.com/nigoroll/libvmod-dynamic/pull/91","diff_url":"https://github.com/nigoroll/libvmod-dynamic/pull/91.diff","patch_url":"https://github.com/nigoroll/libvmod-dynamic/pull/91.patch","merged_at":"2022-08-10T14:50:26Z"},"body":"I open these pull requests to apply @gquintard 's fix on ARM builds for older varnish versions.","closed_by":{"login":"nigoroll","id":1528104,"node_id":"MDQ6VXNlcjE1MjgxMDQ=","avatar_url":"https://avatars.githubusercontent.com/u/1528104?v=4","gravatar_id":"","url":"https://api.github.com/users/nigoroll","html_url":"https://github.com/nigoroll","followers_url":"https://api.github.com/users/nigoroll/followers","following_url":"https://api.github.com/users/nigoroll/following{/other_user}","gists_url":"https://api.github.com/users/nigoroll/gists{/gist_id}","starred_url":"https://api.github.com/users/nigoroll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nigoroll/subscriptions","organizations_url":"https://api.github.com/users/nigoroll/orgs","repos_url":"https://api.github.com/users/nigoroll/repos","events_url":"https://api.github.com/users/nigoroll/events{/privacy}","received_events_url":"https://api.github.com/users/nigoroll/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/nigoroll/libvmod-dynamic/issues/91/timeline","performed_via_github_app":null,"state_reason":null}]