** Description changed:

  [ Impact ]
  
  The samba-tool gpo commands crash because the python code is using a
  method that was removed the python version available in noble. This
  crash prevents the use and management of group policy objects in a samba
  active directory controller.
  
  [ Test Plan ]
  
- Since this is a plain "method has no attribute foo" error, I tried a
- reproducer that didn't involve deploying a samba active directory
- controller, but didn't find a way.
- 
- So the test plan is as follows:
+ The test plan is as follows:
  - deploy samba active directory controller in noble. Here[1] is a how-to 
guide.
  - run the test command, using the default UUID for the Default Domain Policy
  
    sudo samba-tool gpo manage motd set
  {31B2F340-016D-11D2-945F-00C04FB984F9}  "Welcome" -U Administrator
  
  - without the fix, that will crash with a python backtrace:
  
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  - with the fix, the command will not fail, and exit silently
  
  - confirm that the motd gpo was set. The output should be "Welcome":
  
    sudo samba-tool gpo manage motd list
  {31B2F340-016D-11D2-945F-00C04FB984F9};echo
  
  It is out of scope for this bug to test the actual group policy object.
  I believe that is fine, given the type of error.
  
  Furthermore, bug
  https://bugs.launchpad.net/ubuntu/+source/samba/+bug/2078854 which is
  also being fixed in this SRU will involve some GPO testing.
  
  1. https://documentation.ubuntu.com/server/how-to/samba/provision-samba-
  ad-controller/
  
  [ Where problems could occur ]
  
   * Think about what the upload changes in the software. Imagine the
     change is wrong or breaks something else: how would this show up?
  
   * It is assumed that any SRU candidate patch is well-tested before
     upload and has a low overall risk of regression, but it's important
     to make the effort to think about what ''could'' happen in the event
     of a regression.
  
   * This must never be "None" or "Low", or entirely an argument as to why
     your upload is low risk.
  
   * This both shows the SRU team that the risks have been considered,
     and provides guidance to testers in regression-testing the SRU.
  
  [ Other Info ]
  
   * Anything else you think is useful to include
  
   * Make sure to explain any deviation from the norm, to save the SRU
     reviewer from having to infer your reasoning, possibly incorrectly.
     This should also help reduce review iterations, particularly when the
     reason for the deviation is not obvious.
  
   * Anticipate questions from users, SRU, +1 maintenance, security teams
     and the Technical Board and address these questions in advance
  
  [ Original Description ]
  
  Got this in noble's samba:
  
  # samba-tool gpo manage motd set {31B2F340-016D-11D2-945F-00C04FB984F9}  
"Welcome" -U Administrator
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  This was fixed in[1]:
  
  commit 2b566979acfc89ad609eb7c0c87d720f1a35f30a
  Author: Jo Sutton <[email protected]>
  Date:   Tue Aug 29 16:30:08 2023 +1200
  
      gp: Use read_file() instead of readfp()
  
      readfp() is deprecated and could be removed in a future version of
      Python.
  
      Signed-off-by: Joseph Sutton <[email protected]>
      Reviewed-by: Andrew Bartlett <[email protected]>
  
  1. https://github.com/samba-
  team/samba/commit/2b566979acfc89ad609eb7c0c87d720f1a35f30a

** Description changed:

  [ Impact ]
  
  The samba-tool gpo commands crash because the python code is using a
  method that was removed the python version available in noble. This
  crash prevents the use and management of group policy objects in a samba
  active directory controller.
  
  [ Test Plan ]
  
  The test plan is as follows:
  - deploy samba active directory controller in noble. Here[1] is a how-to 
guide.
  - run the test command, using the default UUID for the Default Domain Policy
  
    sudo samba-tool gpo manage motd set
  {31B2F340-016D-11D2-945F-00C04FB984F9}  "Welcome" -U Administrator
  
  - without the fix, that will crash with a python backtrace:
  
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  - with the fix, the command will not fail, and exit silently
  
  - confirm that the motd gpo was set. The output should be "Welcome":
  
    sudo samba-tool gpo manage motd list
  {31B2F340-016D-11D2-945F-00C04FB984F9};echo
  
  It is out of scope for this bug to test the actual group policy object.
- I believe that is fine, given the type of error.
+ I believe that is fine, given the type of error. In fact, this simple
+ exercise already uncovered another motd gpo bug, also being fixed in the
+ same upload (LP: #2092308).
  
  Furthermore, bug
  https://bugs.launchpad.net/ubuntu/+source/samba/+bug/2078854 which is
  also being fixed in this SRU will involve some GPO testing.
  
  1. https://documentation.ubuntu.com/server/how-to/samba/provision-samba-
  ad-controller/
  
  [ Where problems could occur ]
  
   * Think about what the upload changes in the software. Imagine the
     change is wrong or breaks something else: how would this show up?
  
   * It is assumed that any SRU candidate patch is well-tested before
     upload and has a low overall risk of regression, but it's important
     to make the effort to think about what ''could'' happen in the event
     of a regression.
  
   * This must never be "None" or "Low", or entirely an argument as to why
     your upload is low risk.
  
   * This both shows the SRU team that the risks have been considered,
     and provides guidance to testers in regression-testing the SRU.
  
  [ Other Info ]
  
   * Anything else you think is useful to include
  
   * Make sure to explain any deviation from the norm, to save the SRU
     reviewer from having to infer your reasoning, possibly incorrectly.
     This should also help reduce review iterations, particularly when the
     reason for the deviation is not obvious.
  
   * Anticipate questions from users, SRU, +1 maintenance, security teams
     and the Technical Board and address these questions in advance
  
  [ Original Description ]
  
  Got this in noble's samba:
  
  # samba-tool gpo manage motd set {31B2F340-016D-11D2-945F-00C04FB984F9}  
"Welcome" -U Administrator
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  This was fixed in[1]:
  
  commit 2b566979acfc89ad609eb7c0c87d720f1a35f30a
  Author: Jo Sutton <[email protected]>
  Date:   Tue Aug 29 16:30:08 2023 +1200
  
      gp: Use read_file() instead of readfp()
  
      readfp() is deprecated and could be removed in a future version of
      Python.
  
      Signed-off-by: Joseph Sutton <[email protected]>
      Reviewed-by: Andrew Bartlett <[email protected]>
  
  1. https://github.com/samba-
  team/samba/commit/2b566979acfc89ad609eb7c0c87d720f1a35f30a

** Description changed:

  [ Impact ]
  
  The samba-tool gpo commands crash because the python code is using a
  method that was removed the python version available in noble. This
  crash prevents the use and management of group policy objects in a samba
  active directory controller.
  
  [ Test Plan ]
  
  The test plan is as follows:
  - deploy samba active directory controller in noble. Here[1] is a how-to 
guide.
  - run the test command, using the default UUID for the Default Domain Policy
  
    sudo samba-tool gpo manage motd set
  {31B2F340-016D-11D2-945F-00C04FB984F9}  "Welcome" -U Administrator
  
  - without the fix, that will crash with a python backtrace:
  
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  - with the fix, the command will not fail, and exit silently
  
  - confirm that the motd gpo was set. The output should be "Welcome":
  
    sudo samba-tool gpo manage motd list
  {31B2F340-016D-11D2-945F-00C04FB984F9};echo
  
  It is out of scope for this bug to test the actual group policy object.
  I believe that is fine, given the type of error. In fact, this simple
  exercise already uncovered another motd gpo bug, also being fixed in the
  same upload (LP: #2092308).
  
  Furthermore, bug
  https://bugs.launchpad.net/ubuntu/+source/samba/+bug/2078854 which is
  also being fixed in this SRU will involve some GPO testing.
  
  1. https://documentation.ubuntu.com/server/how-to/samba/provision-samba-
  ad-controller/
  
  [ Where problems could occur ]
  
-  * Think about what the upload changes in the software. Imagine the
-    change is wrong or breaks something else: how would this show up?
+ What is somewhat likely to happen with this fix is that, by actually
+ allowing the command to proceed, other bugs will be found. That has
+ happened while preparing this SRU: see LP: #2092308.
  
-  * It is assumed that any SRU candidate patch is well-tested before
-    upload and has a low overall risk of regression, but it's important
-    to make the effort to think about what ''could'' happen in the event
-    of a regression.
- 
-  * This must never be "None" or "Low", or entirely an argument as to why
-    your upload is low risk.
- 
-  * This both shows the SRU team that the risks have been considered,
-    and provides guidance to testers in regression-testing the SRU.
  
  [ Other Info ]
  
-  * Anything else you think is useful to include
- 
-  * Make sure to explain any deviation from the norm, to save the SRU
-    reviewer from having to infer your reasoning, possibly incorrectly.
-    This should also help reduce review iterations, particularly when the
-    reason for the deviation is not obvious.
- 
-  * Anticipate questions from users, SRU, +1 maintenance, security teams
-    and the Technical Board and address these questions in advance
+ I wouldn't be surprised if more bugs exist in this area of the code, but
+ it shouldn't stop this update. It's already an improvement.
  
  [ Original Description ]
  
  Got this in noble's samba:
  
  # samba-tool gpo manage motd set {31B2F340-016D-11D2-945F-00C04FB984F9}  
"Welcome" -U Administrator
  WARNING: Using passwords on command line is insecure. Installing the 
setproctitle python module will hide these from shortly after program start.
  Password for [EXAMPLE\Administrator]:
  ERROR(<class 'AttributeError'>): uncaught exception - 'ConfigParser' object 
has no attribute 'readfp'
    File "/usr/lib/python3/dist-packages/samba/netcmd/__init__.py", line 279, 
in _run
      return self.run(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/samba/netcmd/gpo.py", line 3838, in run
      reg.increment_gpt_ini(machine_changed=True)
    File "/usr/lib/python3/dist-packages/samba/policies.py", line 177, in 
increment_gpt_ini
      parser.parse(data)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 112, 
in parse
      super(GPTIniParser, self).parse(contents)
    File "/usr/lib/python3/dist-packages/samba/gp_parse/gp_ini.py", line 41, in 
parse
      self.ini_conf.readfp(StringIO(contents.decode(self.encoding)))
      ^^^^^^^^^^^^^^^^^^^^
  
  This was fixed in[1]:
  
  commit 2b566979acfc89ad609eb7c0c87d720f1a35f30a
  Author: Jo Sutton <[email protected]>
  Date:   Tue Aug 29 16:30:08 2023 +1200
  
      gp: Use read_file() instead of readfp()
  
      readfp() is deprecated and could be removed in a future version of
      Python.
  
      Signed-off-by: Joseph Sutton <[email protected]>
      Reviewed-by: Andrew Bartlett <[email protected]>
  
  1. https://github.com/samba-
  team/samba/commit/2b566979acfc89ad609eb7c0c87d720f1a35f30a

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2088094

Title:
  ConfigParser has no attribute readfp

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/samba/+bug/2088094/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to