nsg-ethz / p4-utils

Extension to Mininet that makes P4 networks easier to build
GNU General Public License v2.0
175 stars 65 forks source link

'MininetLogger' object has no attribute 'ch' #43

Open trailll opened 1 year ago

trailll commented 1 year ago

hello,I install p4-utils and run it in p4-learning,but error occur,here is image ,can you help me?thanks wcc@ubuntu:~/p4/p4-learning/exercises/01-Reflector$ p4run Traceback (most recent call last): File "/usr/local/bin/p4run", line 11, in load_entry_point('p4utils', 'console_scripts', 'p4run')() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 480, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2693, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2324, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2330, in resolve module = import(self.module_name, fromlist=['name'], level=0) File "/home/wcc/p4/p4-utils/p4utils/p4run.py", line 33, in from p4utils.utils.helper import * File "/home/wcc/p4/p4-utils/p4utils/utils/helper.py", line 21, in from p4utils.mininetlib.log import info, output, error, warning, debug File "/home/wcc/p4/p4-utils/p4utils/mininetlib/log.py", line 92, in lg.ch.setFormatter( formatter ) AttributeError: 'MininetLogger' object has no attribute 'ch' wcc@ubuntu:~/p4/p4-learning/exercises/01-Reflector$

edgar-costa commented 1 year ago

The ch attribute to lg was added in this commit https://github.com/mininet/mininet/commit/2255bc7da37aa935beb00709991a25b77443e569

I believe your problem is that you have an old version of mininet, try to update it.

PS: can you remove the text crossing, was hard to read.

trailll commented 1 year ago

The ch attribute to lg was added in this commit mininet/mininet@2255bc7

I believe your problem is that you have an old version of mininet, try to update it.

PS: can you remove the text crossing, was hard to read.

I have slove the problem after I update my mininet from 2.3.0d6 to 2.3.1b1m,but when I try exercise at tutorials,make run faild,it work normal when the version of mininet is 2.3.0d6

wcc@ubuntu:~/p4/tutorials/exercises/basic$ make run mkdir -p build pcaps logs p4c-bm2-ss --p4v 16 --p4runtime-files build/basic.p4.p4info.txt -o build/basic.json basic.p4 sudo python3 ../../utils/run_exercise.py -t pod-topo/topology.json -j build/basic.json -b simple_switch_grpc Traceback (most recent call last): File "../../utils/run_exercise.py", line 28, in import p4runtime_lib.simple_controller File "/home/wcc/p4/tutorials/utils/p4runtime_lib/simple_controller.py", line 24, in from . import bmv2, helper File "/home/wcc/p4/tutorials/utils/p4runtime_lib/bmv2.py", line 17, in from .switch import SwitchConnection File "/home/wcc/p4/tutorials/utils/p4runtime_lib/switch.py", line 21, in from p4.v1 import p4runtime_pb2, p4runtime_pb2_grpc File "/usr/local/lib/python3.6/dist-packages/p4/v1/p4runtime_pb2.py", line 17, in from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 File "/usr/local/lib/python3.6/dist-packages/google/rpc/status_pb2.py", line 39, in _STATUS = DESCRIPTOR.message_types_by_name["Status"] AttributeError: 'NoneType' object has no attribute 'message_types_by_name' ../../utils/Makefile:35: recipe for target 'run' failed make: *** [run] Error 1 wcc@ubuntu:~/p4/tutorials/exercises/basic$ mn --version ps: I don't know why there have so many text crossing...

edgar-costa commented 1 year ago

How did you install all the other things? Can you try with the p4-utils VM? It is a qcow2 image, but you can translate it to OVA for VirtualBox.

trailll commented 1 year ago

How did you install all the other things? Can you try with the p4-utils VM?

I uninstall the old version and install the new version from source,and p4run can work at p4-learning

edgar-costa commented 1 year ago

By tutorials, you mean, p4lang tutorials? How is that related to p4-learning and mininet version. There seems to be a problem with p4runtime and the tutorials. Which VM are you using? Our VM or the one from there.

trailll commented 1 year ago

By tutorials, you mean, p4lang tutorials? How is that related to p4-learning and mininet version. There seems to be a problem with p4runtime and the tutorials. Which VM are you using? Our VM or the one from there.

yeah,it's p4lang turtorials,it can work normal before I uninstall mininet 2.3.0d6,but faild though I install 2.3.1b1

kpapd commented 1 year ago

I've run into the same issue. It seems that p4-utils break the p4lang/tutorials installation and even uninstalling doesn't seem to bring things back! Is there a way to revert this? You may want to mention that to installation instructions of p4-utlis.