#1941 Internal Server Error adding invalid reverse DNS zone
Closed: Fixed None Opened 12 years ago by rcritten.

https://bugzilla.redhat.com/show_bug.cgi?id=744234

Description of problem:
Attempting to add an invalid reverse DNS zone results in an Internal Server Error.

errors_log ::

[Fri Oct 07 10:46:48 2011] [error] ipa: INFO: admin@JGALIPEA: dnszone_add(None, idnssoamname=u'ipaserver.jgalipea.redhat.com', force=u'false'): RequirementError
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87] mod_wsgi (pid=27085): Exception occurred processing WSGI script '/usr/share/ipa/wsgi.py'.
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87] Traceback (most recent call last):
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/share/ipa/wsgi.py", line 48, in application
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     return api.Backend.session(environ, start_response)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 142, in __call__
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     return self.route(environ, start_response)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 154, in route
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     return app(environ, start_response)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 254, in __call__
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     response = self.wsgi_execute(environ)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipaserver/rpcserver.py", line 223, in wsgi_execute
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     result = self.Command[name](*args, **options)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/frontend.py", line 419, in __call__
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     default = self.get_default(**params)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/frontend.py", line 673, in get_default
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     return dict(self.__get_default_iter(kw))
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/frontend.py", line 683, in __get_default_iter
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     default = param.get_default(**kw)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/parameters.py", line 873, in get_default
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     default = self._get_default(**kw)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/parameters.py", line 228, in __call__
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     return self.callback(*vals)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/plugins/dns.py", line 312, in <lambda>
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     default_from=lambda name_from_ip: _reverse_zone_name(name_from_ip),
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/ipalib/plugins/dns.py", line 151, in _reverse_zone_name
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     net = netaddr.IPNetwork(netstr)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]   File "/usr/lib/python2.6/site-packages/netaddr/ip/__init__.py", line 926, in __init__
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87]     raise AddrFormatError('invalid IPNetwork %s' % addr)
[Fri Oct 07 10:46:53 2011] [error] [client 10.16.64.87] AddrFormatError: invalid IPNetwork blah



Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.  From the UI, Identity --> DNS --> Add --> select radio button for reverse zone
2. Enter "blah" in reverse zone field
3. Enter the ipa server's fqdn for the authoritative server
4. Click Add

Actual results:
Internal server error

Expected results:
Proper error message stating the zone name is invalid

Additional info:

The problem is in ipaserver/rpcserver.py. We re-calculate the params list by calling:

params = self.Command[name].args_options_2_params(args, *options)

This is throwing a ValidationError that is uncaught. It should probably look something like:

        if name:
            try:
                params = self.Command[name].args_options_2_params(*args, **options)
            except Exception, e:
                params = options

We lose the args but get most of the context of what was going on.

Metadata Update from @rcritten:
- Issue assigned to mkosek
- Issue set to the milestone: FreeIPA 2.1.3 (bug fixing)

7 years ago

Login to comment on this ticket.

Metadata