#48016 search, matching rules and filter error "unsupported type 0xA9"
Closed: wontfix None Opened 9 years ago by nhosoi.

Description of problem:

This came up as a side effect of trouble shooting a separate search issue:

a filter with a matching rules seem to create the following error trace,
without creating any apparent result errors:
...
[05/Nov/2014:06:00:50 -0800] - <= get_extensible_filter 0
[05/Nov/2014:06:00:50 -0800] - (ou:dn:=people)
...
[05/Nov/2014:06:00:51 -0800] get_filter -  after optimize:
(&(objectClass=groupOfUniqueNames)(!))
[05/Nov/2014:06:00:51 -0800] index_subsys_assign_filter_decoders - before:
(&(objectClass=groupOfUniqueNames)(!unsupported type 0xA9))
...

I am not sure if this is really an issue, if it can be ignored, I seem to get
all the entries I expect, or not see the entries I expect to be discarded, but
there should probably be no such error, so this may need to be reviewed.

Dev / Noriko commented:
"
 The error "unsupported type 0xA9" is logged in slapi_filter_to_string_internal
(filter.c).  And 0xA9 is LDAP_FILTER_EXTENDED:

    #define LDAP_FILTER_EXTENDED 0xa9L

Indeed slapi_filter_to_string_internal does not handle LDAP_FILTER_EXTENDED...

Could it be a "not implemented yet" type of bug???
"

How reproducible:
on demand


Steps to Reproduce:

1. service dirsrv stop

2. add 32 to the error log verbose level for filter debug:
vim /etc/dirsrv/slapd-ID/dse.ldif
...
nsslapd-errorlog-level: 16416

3. service dirsrv start

4. test, for example list entries with ou that cannot have in DN the string
=people
so I expect only groups in my test sample data set:

ldapsearch -LLLx ... -b dc=example,dc=com "(&(objectClass=groupOfUniqueNames)(!(ou:dn:=people)))" dn
dn: cn=group0,ou=groups,dc=example,dc=com
...snip...
dn: cn=group49,ou=groups,dc=example,dc=com

5. review errors log

less /var/log/dirsrv/slapd-ID/errors
...
[05/Nov/2014:06:00:50 -0800] - EXTENDED
[05/Nov/2014:06:00:50 -0800] - => get_extensible_filter
[05/Nov/2014:06:00:50 -0800] - <= get_extensible_filter 0
[05/Nov/2014:06:00:50 -0800] - (ou:dn:=people)
[05/Nov/2014:06:00:50 -0800] - <= get_filter_internal 0
[05/Nov/2014:06:00:50 -0800] - <= get_filter_internal 0
[05/Nov/2014:06:00:51 -0800] - <= get_filter_list
[05/Nov/2014:06:00:51 -0800] - <= get_filter_internal 0
[05/Nov/2014:06:00:51 -0800] get_filter - before optimize:
(&(objectClass=groupOfUniqueNames)(!))
[05/Nov/2014:06:00:51 -0800] get_filter -  after optimize:
(&(objectClass=groupOfUniqueNames)(!))
[05/Nov/2014:06:00:51 -0800] index_subsys_assign_filter_decoders - before:
(&(objectClass=groupOfUniqueNames)(!unsupported type 0xA9))
[05/Nov/2014:06:00:51 -0800] index_subsys_assign_filter_decoders -  after:
(&(objectClass=groupOfUniqueNames)(!unsupported type 0xA9))
[05/Nov/2014:06:00:51 -0800] - slapi_str2filter "objectclass=referral"
[05/Nov/2014:06:00:51 -0800] - slapi_str2filter: default
[05/Nov/2014:06:00:51 -0800] - str2simple "objectclass=referral"
[05/Nov/2014:06:00:51 -0800] -  OR
[05/Nov/2014:06:00:51 -0800] -  AND
[05/Nov/2014:06:00:51 -0800] -  EQUALITY
[05/Nov/2014:06:00:51 -0800] - => slapi_attr_assertion2keys_ava_sv
[05/Nov/2014:06:00:51 -0800] - <= slapi_attr_assertion2keys_ava_sv 0
[05/Nov/2014:06:00:51 -0800] -  NOT
[05/Nov/2014:06:00:51 -0800] -  EQUALITY
[05/Nov/2014:06:00:51 -0800] - => slapi_attr_assertion2keys_ava_sv
[05/Nov/2014:06:00:51 -0800] - <= slapi_attr_assertion2keys_ava_sv 0
[05/Nov/2014:06:00:51 -0800] - slapi_filter_free type 0xA1
[05/Nov/2014:06:00:52 -0800] - slapi_filter_free type 0xA3
[05/Nov/2014:06:00:52 -0800] - slapi_filter_dup type 0xA0
[05/Nov/2014:06:00:52 -0800] - slapi_filter_dup type 0xA3
[05/Nov/2014:06:00:52 -0800] - slapi_filter_dup type 0xA2
[05/Nov/2014:06:00:52 -0800] - slapi_filter_dup type 0xA9
[05/Nov/2014:06:00:52 -0800] - => slapi_vattr_filter_test_ext
[05/Nov/2014:06:00:52 -0800] - => test_substring_filter
[05/Nov/2014:06:00:52 -0800] -     AND
[05/Nov/2014:06:00:52 -0800] - => vattr_test_filter_list
[05/Nov/2014:06:00:52 -0800] - => slapi_vattr_filter_test_ext
[05/Nov/2014:06:00:52 -0800] - => test_substring_filter
[05/Nov/2014:06:00:52 -0800] -     EQUALITY
[05/Nov/2014:06:00:52 -0800] - => test_ava_filter
[05/Nov/2014:06:00:52 -0800] - => plugin_call_syntax_filter_ava
objectClass=groupofuniquenames
[05/Nov/2014:06:00:52 -0800] - <= plugin_call_syntax_filter_ava 0
[05/Nov/2014:06:00:52 -0800] - <= test_ava_filter 0
[05/Nov/2014:06:00:52 -0800] - <= slapi_vattr_filter_test 0
[05/Nov/2014:06:00:52 -0800] - => slapi_vattr_filter_test_ext
[05/Nov/2014:06:00:52 -0800] - => test_substring_filter
[05/Nov/2014:06:00:52 -0800] -     NOT
[05/Nov/2014:06:00:52 -0800] - => slapi_vattr_filter_test_ext
[05/Nov/2014:06:00:52 -0800] - => test_substring_filter
[05/Nov/2014:06:00:52 -0800] -     EXTENDED
[05/Nov/2014:06:00:52 -0800] - => test_extensible_filter
[05/Nov/2014:06:00:52 -0800] - => test_ava_filter
[05/Nov/2014:06:00:52 -0800] - <= test_ava_filter -1
[05/Nov/2014:06:00:52 -0800] - => test_ava_filter
[05/Nov/2014:06:00:52 -0800] - => plugin_call_syntax_filter_ava ou=people
[05/Nov/2014:06:00:52 -0800] - <= plugin_call_syntax_filter_ava -1
[05/Nov/2014:06:00:52 -0800] - <= test_ava_filter -1
[05/Nov/2014:06:00:53 -0800] - <= test_extensible_filter -1

Note: this is a benign error message that only occurs when debug logging is enabled.

Reviewed by Rich (Thanks!!)

Pushed to master:
3cbdfa6..21dda61 master -> master
commit 21dda61

Metadata Update from @nhosoi:
- Issue assigned to nhosoi
- Issue set to the milestone: 1.3.5.0

7 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/1347

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

3 years ago

Login to comment on this ticket.

Metadata