AttributeError Python 3.4.3+: /usr/bin/python3 Mon Dec 21 09:37:47 2015 A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred. /usr/sbin/aa-logprof in () 42 43 if profiledir: 44 apparmor.profile_dir = apparmor.get_full_path(profiledir) 45 if not os.path.isdir(apparmor.profile_dir): 46 raise apparmor.AppArmorException("%s is not a directory."%profiledir) 47 48 apparmor.loadincludes() 49 50 apparmor.do_logprof_pass(logmark) 51 apparmor = apparmor.do_logprof_pass = logmark = '' /usr/lib/python3/dist-packages/apparmor/aa.py in do_logprof_pass(logmark='', passno=0, pid={715: [[715, '/usr/bin/snx', '/usr/bin/snx', 'HINT', 'REJECTING', set(['::r', 'r']), '/proc/1/cmdline', ''], [715, '/usr/bin/snx', '/usr/bin/snx', 'HINT', 'REJECTING', set(['::r', 'r']), '/proc/2/cmdline', ''], [715, '/usr/bin/snx', '/usr/bin/snx', 'HINT', 'REJECTING', set(['::r', 'r']), '/proc/3/cmdline', '']], 902: [[902, '/usr/bin/snx', '/usr/bin/snx', 'HINT', 'REJECTING', set(['::r', 'r']), '/proc/tty/drivers', '']], 1481: [[1481, '/usr/sbin/dnsmasq', '/usr/sbin/dnsmasq', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1493: [[1493, '/usr/sbin/dnsmasq', '/usr/sbin/dnsmasq', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1551: [[1551, '/usr/sbin/nmbd', '/usr/sbin/nmbd', 'HINT', 'REJECTING', set(['::r', 'r']), '/etc/ld.so.preload', '']], 1673: [[1673, '/usr/sbin/smbd', '/usr/sbin/smbd', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', ''], [1673, '/usr/sbin/smbd', '/usr/sbin/smbd', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1791: [[1791, '/usr/sbin/dnsmasq', '/usr/sbin/dnsmasq', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1792: [[1792, '/usr/sbin/dnsmasq', '/usr/sbin/dnsmasq', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1793: [[1793, '/usr/sbin/dnsmasq', '/usr/sbin/dnsmasq', 'HINT', 'REJECTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', '']], 1794: [[1794, '/usr/sbin/dnsmasq', '/bin/dash', 'HINT', 'PERMITTING', set(['::r', 'r']), '/etc/ld.so.preload', ''], [1794, '/usr/sbin/dnsmasq', '/bin/dash', 'HINT', 'PERMITTING', set(['::r', 'r']), '/opt/eset/esets/lib/libesets_pac.so', ''], [1794, '/usr/sbin/dnsmasq', '/bin/dash', 'HINT', 'PERMITTING', set(['::r', 'r']), '/etc/opt/eset/esets/info/pkgid', '']], ...}) 2192 # To-Do 2193 pass 2194 2195 finishing = False 2196 # Check for finished 2197 save_profiles() 2198 2199 ##if not repo_cfg['repository'].get('upload', False) or repo['repository']['upload'] == 'later': 2200 ## UI_ask_to_upload_profiles() 2201 ##if repo_enabled(): global save_profiles = /usr/lib/python3/dist-packages/apparmor/aa.py in save_profiles() 2272 oldprofile = None 2273 if aa[which][which].get('filename', False): 2274 oldprofile = aa[which][which]['filename'] 2275 else: 2276 oldprofile = get_profile_filename(which) 2277 newprofile = serialize_profile_from_old_profile(aa[which], which, '') 2278 2279 display_changes_with_comments(oldprofile, newprofile) 2280 2281 elif ans == 'CMD_VIEW_CHANGES_CLEAN': newprofile undefined global serialize_profile_from_old_profile = global aa = defaultdict(,...apparmor.d/usr.sbin.cupsd', 'profile': True})})}) which = '/sbin/dhclient' /usr/lib/python3/dist-packages/apparmor/aa.py in serialize_profile_from_old_profile(profile_data=defaultdict(,...7fd2f0fd2ea0>, {'local/sbin.dhclient': True})})}), name='/sbin/dhclient', options='') 3956 write_filelist['include'].pop(include_name) 3957 data.append(line) 3958 3959 elif NetworkRule.match(line): 3960 network_obj = NetworkRule.parse(line) 3961 if write_prof_data[hat]['network'].is_covered(network_obj, True, True): 3962 if not segments['network'] and True in segments.values(): 3963 data += write_prior_segments(write_prof_data[name], segments, line) 3964 segments['network'] = True 3965 write_prof_data[hat]['network'].delete(network_obj) write_prof_data = defaultdict(,...dict(, {})})}) hat = '/usr/lib/NetworkManager/nm-dhcp-client.action' ].is_covered undefined network_obj = AttributeError: 'collections.defaultdict' object has no attribute 'is_covered' __cause__ = None __class__ = __context__ = None __delattr__ = __dict__ = {} __dir__ = __doc__ = 'Attribute not found.' __eq__ = __format__ = __ge__ = __getattribute__ = __gt__ = __hash__ = __init__ = __le__ = __lt__ = __ne__ = __new__ = __reduce__ = __reduce_ex__ = __repr__ = __setattr__ = __setstate__ = __sizeof__ = __str__ = __subclasshook__ = __suppress_context__ = False __traceback__ = args = ("'collections.defaultdict' object has no attribute 'is_covered'",) with_traceback = The above is a description of an error in a Python program. Here is the original traceback: Traceback (most recent call last): File "/usr/sbin/aa-logprof", line 50, in apparmor.do_logprof_pass(logmark) File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 2197, in do_logprof_pass save_profiles() File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 2277, in save_profiles newprofile = serialize_profile_from_old_profile(aa[which], which, '') File "/usr/lib/python3/dist-packages/apparmor/aa.py", line 3961, in serialize_profile_from_old_profile if write_prof_data[hat]['network'].is_covered(network_obj, True, True): AttributeError: 'collections.defaultdict' object has no attribute 'is_covered' Please consider reporting a bug at https://bugs.launchpad.net/apparmor/ and attach this file.