pierky / arouteserver

A tool to automatically build (and test) feature-rich configurations for BGP route servers.
https://arouteserver.readthedocs.org/
GNU General Public License v3.0
284 stars 46 forks source link

__init__() got an unexpected keyword argument 'allowed_methods' after upgrade to 1.16 #110

Closed jayhanke closed 2 years ago

jayhanke commented 2 years ago

ARouteServer 2022-06-18 11:00:04,363 ERROR An unexpected error occurred: init() got an unexpected keyword argument 'allowed_methods'

Traceback (most recent call last): File "/usr/local/bin/arouteserver", line 64, in if main(): File "/usr/local/bin/arouteserver", line 53, in main return cmd.run() File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/commands/tpl_rendering.py", line 177, in run builder = builder_class(**self.cfg_builder_params) File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/builder.py", line 523, in init self.enrich_config() File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/builder.py", line 605, in enrich_config enricher.enrich() File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/enrichers/base.py", line 145, in enrich self.add_tasks() File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/enrichers/pdb_as_set.py", line 102, in add_tasks PeeringDBNet.populate_bulk_query_cache(list(tasks.keys())) File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/peering_db.py", line 227, in populate_bulk_query_cache asns=",".join(map(str, asns_group)) File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/peering_db.py", line 124, in _read_from_url session = _get_request_session() File "/usr/local/lib/python3.7/dist-packages/pierky/arouteserver/peering_db.py", line 71, in _get_request_session respect_retry_after_header=False TypeError: init() got an unexpected keyword argument 'allowed_methods'

pierky commented 2 years ago

Hello @jayhanke, thanks for filing this issue.

Would you be able to provide some more details on how to reproduce it? Like the YML files used to feed the tool and the command you run when you get the error.

At a first look it seems to me that the issue may be related to a mismatch with the version of one library used by ARouteServer. Have you already tried to upgrade the packages inside the virtual environment to the releases pinned in requirement s.txt (or probably even more simply to destroy and re-create the virtual environment from scratch)?

jayhanke commented 2 years ago

issue only happens when using the "bird" command, the "clients-from-euroix" seems to be working fine.

I upgraded the packages, there was a new version of requests but still have same issue.

I'm not running in a venv.

pierky commented 2 years ago

@jayhanke, it seems that you're hitting the issue when the urllib3 is used, which does not happen when clients-from-euroix is run but only when configurations are generated. The error leads me to believe that you might have a version of that library that is < 1.26.0, which is when allowed_methods was introduced (to replace the previous method_whitelist).

Would you mind checking which version of urllib3 you have (pip3 freeze | grep urllib3) and to upgrade it if that's < 1.26.0?

If my theory is confirmed then I'll push out an update of the requirements.txt file to pin down urllib3.

Thanks

jayhanke commented 2 years ago

Success!

@.***:~# pip3 freeze | grep urllib3 urllib3==1.24.1

@.***:~# pip install --upgrade urllib3 Requirement already satisfied: urllib3 in /usr/lib/python3/dist-packages (1.24.1) Collecting urllib3 Downloading urllib3-1.26.9-py2.py3-none-any.whl (138 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.0/139.0 kB 9.6 MB/s eta 0:00:00 Installing collected packages: urllib3 Attempting uninstall: urllib3 Found existing installation: urllib3 1.24.1 Uninstalling urllib3-1.24.1: Successfully uninstalled urllib3-1.24.1 Successfully installed urllib3-1.26.9

On Sat, Jun 18, 2022 at 12:27 PM Pier Carlo Chiodi @.***> wrote:

@jayhanke https://github.com/jayhanke, it seems that you're hitting the issue when the urllib3 is used, which does not happen when clients-from-euroix is run but only when configurations are generated. The error leads me to believe that you might have a version of that library that is < 1.26.0, which is when allowed_methods was introduced (to replace the previous method_whitelist).

Would you mind checking which version of urllib3 you have (pip3 freeze | grep urllib3) and to upgrade it if that's < 1.26.0?

If my theory is confirmed then I'll push out an update of the requirements.txt file to pin down urllib3.

Thanks

— Reply to this email directly, view it on GitHub https://github.com/pierky/arouteserver/issues/110#issuecomment-1159519774, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASE5GQP6H5D44WENOZL3NXDVPYBHZANCNFSM5ZE64QEA . You are receiving this because you were mentioned.Message ID: @.***>

-- Jay Hanke, President South Front Networks @.*** Phone 612-204-0000

pierky commented 2 years ago

@jayhanke, with the just released version 1.16.1 this upgrade issue should be fixed. Thanks for reporting it!

jayhanke commented 1 year ago

Appears to happen when generating the config, we pull the clients with the euroix command and that works fine.

I'm not running in a venv right now.

I checked packages from requirements and they all looked current enough (and all updated to current).

/usr/local/bin/arouteserver bird \ --clients $clients_file \ --ip-ver 6 \ -o /etc/bird/bird6.conf

On Sat, Jun 18, 2022 at 11:23 AM Pier Carlo Chiodi @.***> wrote:

Hello @jayhanke https://github.com/jayhanke, thanks for filing this issue.

Would you be able to provide some more details on how to reproduce it? Like the YML files used to feed the tool and the command you run when you get the error.

At a first look it seems to me that the issue may be related to a mismatch with the version of one library used by ARouteServer. Have you already tried to upgrade the packages inside the virtual environment to the releases pinned in requirement s.txt (or probably even more simply to destroy and re-create the virtual environment from scratch)?

— Reply to this email directly, view it on GitHub https://github.com/pierky/arouteserver/issues/110#issuecomment-1159502747, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASE5GQLV4DGTA652QKEUP6TVPXZWZANCNFSM5ZE64QEA . You are receiving this because you were mentioned.Message ID: @.***>

-- Jay Hanke, President South Front Networks @.*** Phone 612-204-0000

pierky commented 1 year ago

Hi @jayhanke,

I'm a bit confused from your last email.

In https://github.com/pierky/arouteserver/issues/110#issuecomment-1159520880 you said "Success!", and I thought that the suggestion (which was translated into a fix later on) worked to solve the issue.

Are you experiencing the same issue again now? If that's the case, mind sharing the YML files and the exact commands you're using, so that I can reproduce it locally? Also, the output of pip freeze would help to understand your current Python environment.

Thanks

jayhanke commented 1 year ago

The suggestion worked for me. I haven't had any issues after making the change.

On Tue, Oct 11, 2022, 4:37 AM Pier Carlo Chiodi @.***> wrote:

Hi @jayhanke https://github.com/jayhanke,

I'm a bit confused from your last email.

In #110 (comment) https://github.com/pierky/arouteserver/issues/110#issuecomment-1159520880 you said "Success!", and I thought that the suggestion (which was translated into a fix later on) worked to solve the issue.

Are you experiencing the same issue again now? If that's the case, mind sharing the YML files and the exact commands you're using, so that I can reproduce it locally? Also, the output of pip freeze would help to understand your current Python environment.

Thanks

— Reply to this email directly, view it on GitHub https://github.com/pierky/arouteserver/issues/110#issuecomment-1274410773, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASE5GQM2MCGNE4HSJVAE3BTWCUYMTANCNFSM5ZE64QEA . You are receiving this because you were mentioned.Message ID: @.***>

pierky commented 1 year ago

Oh, cool... all good then! GitHub recorded a comment 5 hours ago where the issue appeared to be still present (see https://github.com/pierky/arouteserver/issues/110#issuecomment-1274252628). Weird :-)