Bug 483254
Summary: | Modification of nsViewFilter of a virtual view OU crashes the server | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Retired] 389 | Reporter: | Andrey Ivanov <andrey.ivanov> | ||||||
Component: | Personalized Views | Assignee: | Rich Megginson <rmeggins> | ||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Chandrasekar Kannan <ckannan> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | high | ||||||||
Version: | 1.1.3 | CC: | benl, nhosoi, yzhang | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | 8.1 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2009-04-29 23:10:00 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 249650, 493682 | ||||||||
Attachments: |
|
Description
Andrey Ivanov
2009-01-30 15:06:35 UTC
The message in access log : [30/Jan/2009:15:38:30 +0100] views-plugin - Error: the view filter [<F0>6<AB>^C] in entry [@..\04] is not valid It was of course error log, not access log Here is the same stack trace with the debugging information : #0 0x0000003e61078580 in strlen () from /lib64/libc.so.6 #1 0x0000003e610782d6 in strdup () from /lib64/libc.so.6 #2 0x00002b8c606dc862 in slapi_ch_strdup (s1=0x31 <Address 0x31 out of bounds>) at ldap/servers/slapd/ch_malloc.c:276 #3 0x00002b8c666a27f8 in views_cache_create_applied_filter (pView=0x1090c80) at ldap/servers/plugins/views/views.c:764 #4 0x00002b8c666a34fb in views_update_views_cache (e=0x46b9c30, dn=0x38eeab0 "ou=lpp,ou=virtualviews,dc=id,dc=polytechnique,dc=edu", modtype=4, pb=0x39355c0, caller_data=0x0) at ldap/servers/plugins/views/views.c:1430 #5 0x00002b8c6649f129 in statechange_post_op (pb=0x39355c0, modtype=4) at ldap/servers/plugins/statechange/statechange.c:296 #6 0x00002b8c6649eef9 in statechange_mod_post_op (pb=0x39355c0) at ldap/servers/plugins/statechange/statechange.c:205 #7 0x00002b8c60720da2 in plugin_call_func (list=0xf698e0, operation=505, pb=0x39355c0, call_one=0) at ldap/servers/slapd/plugin.c:1369 #8 0x00002b8c60720c83 in plugin_call_list (list=0xf365e0, operation=505, pb=0x39355c0) at ldap/servers/slapd/plugin.c:1331 #9 0x00002b8c6071ee47 in plugin_call_plugins (pb=0x39355c0, whichfunction=505) at ldap/servers/slapd/plugin.c:324 #10 0x00002b8c60712c6a in op_shared_modify (pb=0x39355c0, pw_change=0, old_pw=0x0) at ldap/servers/slapd/modify.c:846 #11 0x00002b8c60711c1d in do_modify (pb=0x39355c0) at ldap/servers/slapd/modify.c:341 #12 0x0000000000411c07 in connection_dispatch_operation (conn=0x2aaaaaab4c10, op=0x5c218e0, pb=0x39355c0) at ldap/servers/slapd/connection.c:504 #13 0x00000000004132cf in connection_threadmain () at ldap/servers/slapd/connection.c:2163 #14 0x000000303e227ded in PR_JoinThread () from /usr/lib64/libnspr4.so #15 0x0000003e618062f7 in start_thread () from /lib64/libpthread.so.0 #16 0x0000003e610d1e3d in clone () from /lib64/libc.so.6 bt full : #0 0x0000003e61078580 in strlen () from /lib64/libc.so.6 No symbol table info available. #1 0x0000003e610782d6 in strdup () from /lib64/libc.so.6 No symbol table info available. #2 0x00002b8c606dc862 in slapi_ch_strdup (s1=0x31 <Address 0x31 out of bounds>) at ldap/servers/slapd/ch_malloc.c:276 newmem = 0x2b8c606dca74 "H\213E#3 0x00002b8c666a27f8 in views_cache_create_applied_filter (pView=0x1090c80) at ldap/servers/plugins/views/views.c:764 buf = 0x0 current = (viewEntry *) 0x39088d0 pCurrentFilter = (Slapi_Filter *) 0x390caa0 pBuiltFilter = (Slapi_Filter *) 0x390caa0 pViewEntryExcludeFilter = (Slapi_Filter *) 0x0 excludeFilter = 0x108fef0 "(ou=#ou=lpp,ou=lab,ou=organisation,dc=id,dc=polytechnique,dc=edu)" #4 0x00002b8c666a34fb in views_update_views_cache (e=0x46b9c30, dn=0x38eeab0 "ou=lpp,ou=virtualviews,dc=id,dc=polytechnique,dc=edu", modtype=4, pb=0x39355c0, caller_data=0x0) at ldap/servers/plugins/views/views.c:1430 pDn = 0x392cd40 "ou=lpp,ou=virtualviews,dc=id,dc=polytechnique,dc=edu" theView = (viewEntry *) 0x1090c80 current = (viewEntry *) 0x1090c80 attr = (Slapi_Attr *) 0x46b9e90 val = {bv_len = 65, bv_val = 0x108fef0 "(ou=#ou=lpp,ou=lab,ou=organisation,dc=id,dc=polytechnique,dc=edu)"} build_cache = 0 #5 0x00002b8c6649f129 in statechange_post_op (pb=0x39355c0, modtype=4) at ldap/servers/plugins/statechange/statechange.c:296 notify = (SCNotify *) 0x108d170 execute = 1 dn = 0x38eeab0 "ou=lpp,ou=virtualviews,dc=id,dc=polytechnique,dc=edu" e_before = (struct slapi_entry *) 0x3eac180 e_after = (struct slapi_entry *) 0x46b9c30 #6 0x00002b8c6649eef9 in statechange_mod_post_op (pb=0x39355c0) at ldap/servers/plugins/statechange/statechange.c:205 No locals. #7 0x00002b8c60720da2 in plugin_call_func (list=0xf698e0, operation=505, pb=0x39355c0, call_one=0) at ldap/servers/slapd/plugin.c:1369 n = 0xf60c90 "State Change Plugin" func = (IFP) 0x2b8c6649eedf <statechange_mod_post_op> rc = 0 return_value = 0 count = 8 #8 0x00002b8c60720c83 in plugin_call_list (list=0xf365e0, operation=505, pb=0x39355c0) at ldap/servers/slapd/plugin.c:1331 No locals. #9 0x00002b8c6071ee47 in plugin_call_plugins (pb=0x39355c0, whichfunction=505) at ldap/servers/slapd/plugin.c:324 p = (struct slapdplugin *) 0xf435e0 plugin_list_number = 2 rc = 0 do_op = 1 #10 0x00002b8c60712c6a in op_shared_modify (pb=0x39355c0, pw_change=0, old_pw=0x0) at ldap/servers/slapd/modify.c:846 rc = 0 be = (Slapi_Backend *) 0xf72e50 pse = (Slapi_Entry *) 0x46b9c30 referral = (Slapi_Entry *) 0x0 ecopy = (Slapi_Entry *) 0x0 e = (Slapi_Entry *) 0x38fcec0 ebuf = '\0' <repeats 6800 times>, "?017ºH\000\000\000\000`?\000\000\000\000\223-C\000\000\000\000\000\002\000\000\000\000\000\000\000`?\000\000\000\000\002\000\000\000\000\000\000\000?017ºH\000\000\000\000\023?e>\000\000\000\002\000\000\000\000\000\000\000`?\000\000\000\000\004\000\000\000\000\000\000\000O\230Be>", '\0' <repeats 21 times>, "\0026\000\000\000\202?017ºH\000\000\000\000\223-C\000\000\000\000\000\223-C", '\0' <repeats 13 times>, "P\235Be>", '\0' <repeats 107 times>, " 00\000\000?a>\000\000\000?a>", '\0' <repeats 12 times>, "00\000"... dn = 0x390aee0 "ou=LPP,ou=VirtualViews,dc=id,dc=polytechnique,dc=edu" sdn = {flag = 4 '\004', dn = 0x390aee0 "ou=LPP,ou=VirtualViews,dc=id,dc=polytechnique,dc=edu", ndn = 0x38eeab0 "ou=lpp,ou=virtualviews,dc=id,dc=polytechnique,dc=edu", ndn_len = 52} mods = (LDAPMod **) 0x5c21720 pw_mod = (LDAPMod *) 0x200000001 tmpmods = (LDAPMod **) 0x5c21720 smods = {mods = 0x0, num_elements = 4, num_mods = 3, iterator = 3, free_mods = 0} unhashed_pw_smod = {mods = 0x0, num_elements = 0, num_mods = 0, iterator = 0, free_mods = 1} repl_op = 0 internal_op = 0 lastmod = 1 skip_modified_attrs = 0 unhashed_pw_attr = 0x0 operation = (Slapi_Operation *) 0x5c218e0 errorbuf = '\0' <repeats 1272 times>, "?017!>0", '\0' <repeats 19 times>, "?H", '\0' <repeats 28 times>, "\006§v`\214+", '\0' <repeats 18 times>, "P¶¹H\000\000\000\000\005§v`\214+\000\000G022!>0", '\0' <repeats 27 times>, "°?H", '\0' <repeats 356 times>, "P?H", '\0' <repeats 11 times>, " ", '\0' <repeats 98 times>, "90\000\000\000\000\200?\000\000\000\000\000\200¶¹H\000\000\000\000\001\000\000\000\000\000\000\000@\031ºH\000\000\000\000\000 ºH\000\000\000\000\000\020\000\000\000\000\000\000?\">0\000\000\000?`\214+\000\000\235§p`\214"... err = 0 lc_mod = (LDAPMod *) 0x0 p = (struct slapdplugin *) 0x0 numattr = 59987392 i = 0 #11 0x00002b8c60711c1d in do_modify (pb=0x39355c0) at ldap/servers/slapd/modify.c:341 operation = (Slapi_Operation *) 0x5c218e0 ber = (BerElement *) 0x5c21a58 last = 0x5c21cd8 "ique.fr£\201?\201?\003\002\001\001¡\003\002\001\003¢\201˜004\201??o»\226>G\224$ZS016\034\177¹?´\\!a¨???\235Kz?(K\232\2309Mh?\227W¹\032]\003?020cdºVr4G020f?33][\217?nw4\202?+z[\213\01b.\\\025L\032\r0i?sZ\237R?º«" type = 0x0 tag = 4294967294 len = 88 mod = (LDAPMod *) 0x0 mods = (LDAPMod **) 0x5c21720 smods = {mods = 0x0, num_elements = 4, num_mods = 1, iterator = 1, free_mods = 0} err = 0 pw_change = 0 ignored_some_mods = 0 has_password_mod = 0 old_pw = 0x0 dn = 0x390aee0 "ou=LPP,ou=VirtualViews,dc=id,dc=polytechnique,dc=edu" #12 0x0000000000411c07 in connection_dispatch_operation (conn=0x2aaaaaab4c10, op=0x5c218e0, pb=0x39355c0) at ldap/servers/slapd/connection.c:504 No locals. #13 0x00000000004132cf in connection_threadmain () at ldap/servers/slapd/connection.c:2163 is_timedout = 0 pb = (Slapi_PBlock *) 0x39355c0 interval = 10000 conn = (Connection *) 0x2aaaaaab4c10 op = (Operation *) 0x5c218e0 tag = 102 need_wakeup = 0 thread_turbo_flag = 1 ret = 0 more_data = 0 replication_connection = 0 #14 0x000000303e227ded in PR_JoinThread () from /usr/lib64/libnspr4.so No symbol table info available. #15 0x0000003e618062f7 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #16 0x0000003e610d1e3d in clone () from /lib64/libc.so.6 No symbol table info available. Thanks, this is excellent information. Created attachment 330931 [details]
diffs
I have just tested this patch in the same configuration, it does eliminate the server crash mentioned in the subject. Created attachment 330994 [details] cvs commit log Resolves: bug 483254 Bug Description: Modification of nsViewFilter of a virtual view OU crashes the server Reviewed by: nhosoi, andrey.ivanov (Thanks!) Fix Description: When we delete a node, not only do we need to have the parent node discover its new children, we need to have each child discover a new parent. Platforms tested: RHEL5 Flag Day: no Doc impact: no (Thanks Noriko's help) Bug verified. Bug closed my test is below : 1. set up ds server 2. set up example test db (dbgen.pl -o 1k.ldif -n 1000) 3. inject data into "dc=example,dc=com" (I use console import function to inject data) 4. set up virtual view with bug-1.ldif (see below) /usr/lib64/mozldap/ldapmodify -D "cn=directory manager" -w redhat123 -a -f ./bug-1.ldif 5. verify the virtual view /usr/lib64/mozldap/ldapsearch -D "cn=directory manager" -w redhat123 -s sub -b "ou=Accounting,ou=VirtualViews,dc=example,dc=com" objectclass=* dn version: 1 dn: ou=Accounting,ou=VirtualViews,dc=example,dc=com dn: uid=TVradmin0, dc=example,dc=com dn: uid=DSubissat3, dc=example,dc=com 6. modify virtual view filter with bug-2.ldif /usr/lib64/mozldap/ldapmodify -D "cn=directory manager" -w redhat123 -a -f ./bug-2.ldif modifying entry ou=virtualviews,dc=example,dc=com 7. modify view (disable it) with bug-3.ldif file /usr/lib64/mozldap/ldapmodify -D "cn=directory manager" -w redhat123 -a -f ./bug-3.ldif modifying entry ou=accounting,ou=virtualviews,dc=example,dc=com 8. verity: server should still working /usr/lib64/mozldap/ldapsearch -D "cn=directory manager" -w redhat123 -s sub -b "ou=Accounting,ou=VirtualViews,dc=example,dc=com" objectclass=* dn version: 1 dn: ou=Accounting,ou=VirtualViews,dc=example,dc=com ==> test result: passed ============= Data file used ================== -----------------[root@mv64a-vm ~]# cat bug-3.ldif dn: ou=accounting,ou=virtualviews,dc=example,dc=com changetype: modify replace: nsViewFilter nsViewFilter: (ou=#ou=accounting,dc=example,dc=com) -----------------[root@mv64a-vm ~]# cat bug-2.ldif dn: ou=virtualviews,dc=example,dc=com changetype: modify replace: objectClass objectClass: organizationalUnit objectClass: top --------------------[root@mv64a-vm ~]# cat bug-1.ldif dn: ou=virtualviews,dc=example,dc=com objectClass: nsView objectClass: organizationalUnit objectClass: top dn: ou=Accounting,ou=VirtualViews,dc=example,dc=com nsViewFilter: (ou=ou=Accounting,dc=example,dc=com) ou: Accounting objectClass: top objectClass: organizationalUnit objectClass: nsView description: Test Accounting vitual view dn: uid=TVradmin0, dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson ou: ou=Accounting,dc=example,dc=com cn: Teena Vradmin sn: Vradmin uid: TVradmin0 givenName: Teena description: 2;649;CN=Red Hat CS 71GA Demo,O=Red Hat CS 71GA Demo,C=US;CN=RHCS Agent - admin01,UID=admin01,O=redhat,C=US [1] This is Teena Vradmin's description. userPassword: TVradmin0 departmentNumber: 2220 employeeType: Manager homePhone: +1 510 551-9687 initials: T. V. telephoneNumber: +1 303 703-2147 facsimileTelephoneNumber: +1 206 682-3534 mobile: +1 213 151-5816 pager: +1 804 769-1685 manager: Olga Lake secretary: Silva Giamatteo roomNumber: 7730 carLicense: ZSN6DM3 l: Milpitas ou: Accounting mail: Teena_Vradmin dn: uid=DSubissat3, dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson ou: ou=Accounting,dc=example,dc=com cn: Debera Subissati sn: Subissati uid: DSubissat3 givenName: Debera description: 2;4201;CN=Red Hat CS 71GA Demo,O=Red Hat CS 71GA Demo,C=US;CN=RHCS Agent - admin01,UID=admin01,O=redhat,C=US [1] This is Debera Subissati's description. userPassword: DSubissat3 departmentNumber: 822 employeeType: Manager homePhone: +1 804 804-5911 initials: D. S. telephoneNumber: +1 206 391-4080 facsimileTelephoneNumber: +1 415 792-4170 mobile: +1 415 366-5227 pager: +1 818 252-9378 manager: Teresa Hardy secretary: Aubree Noye roomNumber: 2666 carLicense: IY2JT8R l: New York ou: Accounting mail: Debera_Subissati dn: uid=YLucas7, dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Yasmin Lucas sn: Lucas uid: YLucas7 givenName: Yasmin description: 2;5793;CN=Red Hat CS 71GA Demo,O=Red Hat CS 71GA Demo,C=US;CN=RHCS Agent - admin01,UID=admin01,O=redhat,C=US [1] This is Yasmin Lucas's description. userPassword: YLucas7 departmentNumber: 7146 employeeType: Manager homePhone: +1 206 275-5439 initials: Y. L. telephoneNumber: +1 510 887-8679 facsimileTelephoneNumber: +1 415 662-9334 mobile: +1 510 117-5056 pager: +1 818 704-6219 manager: Nick Chan secretary: Carm Berube roomNumber: 2909 carLicense: 7J2DFJV l: Menlo Park ou: Accounting mail: Yasmin_Lucas An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2009-0455.html |