Skip to content

func python - Address family not supported by protocol #3139

@kkpuetz

Description

@kkpuetz

Working on the bookstore example sentiment-analysis-app although it's happening with any python func I try running on a k3s cluster.

building for linux/amd64 from MacOs

func deploy -b=s2i --platform linux/amd64 -v

image builds successfully but pod errors on what appears to be an issue on func python enforcing ipv6 sockets which is not enabled on the ubuntu node vms.

Waiting for Knative Service to become ready
---> Running application from script (app.sh) ...
INFO:root:Functions middleware invoking user function
INFO:root:function does not implement 'alive'. Using default implementation for liveness checks.
INFO:root:function does not implement 'ready'. Using default implementation for readiness checks.
INFO:root:function does not implement 'start'. Skipping.
Traceback (most recent call last):
  File "/opt/app-root/src/.s2i/builds/last/service/main.py", line 23, in <module>
    serve(handler)
  File "/opt/app-root/lib64/python3.9/site-packages/func_python/http.py", line 23, in serve
    return ASGIApplication(f()).serve()
  File "/opt/app-root/lib64/python3.9/site-packages/func_python/http.py", line 75, in serve
    return asyncio.run(self._serve(cfg))
  File "/usr/lib64/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()
  File "/opt/app-root/lib64/python3.9/site-packages/func_python/http.py", line 82, in _serve
    await hypercorn.asyncio.serve(self, cfg)
  File "/opt/app-root/lib64/python3.9/site-packages/hypercorn/asyncio/__init__.py", line 44, in serve
    await worker_serve(
  File "/opt/app-root/lib64/python3.9/site-packages/hypercorn/asyncio/run.py", line 91, in worker_serve
    sockets = config.create_sockets()
  File "/opt/app-root/lib64/python3.9/site-packages/hypercorn/config.py", line 206, in create_sockets
    insecure_sockets = self._create_sockets(self.bind)
  File "/opt/app-root/lib64/python3.9/site-packages/hypercorn/config.py", line 248, in _create_sockets
    sock = socket.socket(socket.AF_INET6 if ":" in host else socket.AF_INET, type_)
  File "/usr/lib64/python3.9/socket.py", line 232, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 97] Address family not supported by protocol

kn version
Version: v1.19.5
func version
v0.46.4

Need some help determining if this is an intended limitation or if there are vars that can be set to enable this to work on ipv4 only supported nodes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions