[egenix-users] Glibc Memory corruption issues with Python 2.7

B.Nanda Kishore madhav.bnk at gmail.com
Tue Jul 23 18:46:51 CEST 2013


Here they are :

>>> mx.ODBC.__version__
'3.1.0'
>>> import mx.ODBC.unixODBC
>>> mx.ODBC.unixODBC.__version__
'3.1.1'


And I dont think I'm using a unicode connection string. Its plain ascii.

create_engine('mssql+mxodbc://my_user:my_pwd@my_dsn')


Regards,
Nanda


On Tue, Jul 23, 2013 at 5:41 PM, M.-A. Lemburg <mal at egenix.com> wrote:

> On 23.07.2013 14:04, B.Nanda Kishore wrote:
> > Hi, I am using egenix-mx-base==*3.2.1*, egenix-mxodbc==*3.1.1.*
> > Also it turned out that, its not specific to Python 2.7. Its happening
> > w.r.to 2.6 also
> >
> > Python 2.6.6 (r266:84292, Mar 22 2013, 17:29:23)
> > [GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] on linux2
> > Type "help", "copyright", "credits" or "license" for more information.
> >>>> from sqlalchemy.orm import sessionmaker
> >>>> from sqlalchemy import create_engine
> >>>>
> >>>> Session = sessionmaker()
> >>>> engine = create_engine('mssql+mxodbc://my_user:my_pwd@my_dsn')
> >>>> conn = engine.connect()
> > *** glibc detected *** /my_instance/bin/python: malloc(): memory
> > corruption: 0x09410260 ***
> > *** glibc detected *** /my_instance/bin/python: malloc(): memory
> > corruption: 0x09410260 ***
>
> Ok, but which ODBC driver and unixODBC manager version are you using ?
>
> This looks more like a problem with the ODBC driver, since the
> memory corruption is detected in the the unixODBC call
> to SQLExecDirectW.
>
> Given that the SQLExecDirectW is used, are you using a Unicode
> connection string for connecting to the database ?
>
> Thanks,
> --
> Marc-Andre Lemburg
> eGenix.com
>
> Professional Python Services directly from the Source  (#1, Jul 23 2013)
> >>> Python Projects, Consulting and Support ...   http://www.egenix.com/
> >>> mxODBC.Zope/Plone.Database.Adapter ...       http://zope.egenix.com/
> >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
> ________________________________________________________________________
>
> ::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
>
>    eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
>     D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
>            Registered at Amtsgericht Duesseldorf: HRB 46611
>                http://www.egenix.com/company/contact/
>
> > Regards,
> > Nanda
> >
> >
> > On Tue, Jul 23, 2013 at 5:31 PM, M.-A. Lemburg <mal at egenix.com> wrote:
> >
> >> Hello,
> >>
> >> which ODBC driver and unixODBC manager version are you using ?
> >>
> >> The stack trace shows that the double free happens in the
> >> unixODBC driver. It could be related to a bug we fixed in
> >> 3.1.2. Perhaps you could try with that version and see whether
> >> it fixes your problem:
> >>
> >> http://www.egenix.com/products/python/mxODBC/3.1.2/changelog.html
> >>
> >> On 23.07.2013 13:52, B.Nanda Kishore wrote:
> >>> Hi Everybody,
> >>>
> >>> I am running into glibc memory corruption issues when I try to access
> >> mssql
> >>> db using mxodbc,
> >>> using SQLAlchemy ORM with Python 2.7 alone(everything works fine with
> >>> Python 2.6).
> >>> Given below is the stack trace. Can someone let me know what I am
> >> missing ?
> >>> Currently I have 2.12 version of glibc.
> >>>
> >>> ---------- Stack Trace ---------------
> >>>
> >>> Python 2.7.3 (default, Apr 10 2013, 05:46:21)
> >>> [GCC 4.6.3] on linux2
> >>> Type "help", "copyright", "credits" or "license" for more information.
> >>>>>> from sqlalchemy.orm import sessionmaker
> >>>>>> from sqlalchemy import create_engine
> >>>>>>
> >>>>>> Session = sessionmaker()
> >>>>>> engine = create_engine('mssql+mxodbc://my_user:my_pwd@my_dsn')
> >>>>>> conn = engine.connect()
> >>> *** glibc detected *** /usr/bin/python: double free or corruption
> >> (!prev):
> >>> 0x09eecf48 ***
> >>> ======= Backtrace: =========
> >>> /lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb7437ee2]
> >>>
> >>
> /my_instance/parts/unixODBC/lib/libodbc.so.1(SQLExecDirectW+0x567)[0xb6d29427]
> >>>
> >>
> /my_instance/eggs/egenix_mxodbc-3.1.1-py2.7-linux-i686.egg/mx/ODBC/unixODBC/mxODBC.so(+0x12b97)[0xb6d7ab97]
> >>>
> >>
> /my_instance/eggs/egenix_mxodbc-3.1.1-py2.7-linux-i686.egg/mx/ODBC/unixODBC/mxODBC.so(+0x1441b)[0xb6d7c41b]
> >>> /usr/bin/python(PyEval_EvalFrameEx+0x5a07)[0x81a2d47]
> >>> ======= Memory map: ========
> >>> 08048000-0829e000 r-xp 00000000 fc:01 11141548   /usr/bin/python2.7
> >>> 0829e000-0829f000 r--p 00255000 fc:01 11141548   /usr/bin/python2.7
> >>> 0829f000-082f4000 rw-p 00256000 fc:01 11141548   /usr/bin/python2.7
> >>> 082f4000-08300000 rw-p 00000000 00:00 0
> >>> 099a3000-09f66000 rw-p 00000000 00:00 0          [heap]
> >>> b6c85000-b6c86000 rw-p 00000000 00:00 0
> >>> b6c86000-b6c88000 r-xp 00000000 fc:01 11143751
> >>> /usr/lib/i386-linux-gnu/gconv/CP1252.so
> >>> b6c88000-b6c89000 r--p 00001000 fc:01 11143751
> >>> /usr/lib/i386-linux-gnu/gconv/CP1252.so
> >>> b6c89000-b6c8a000 rw-p 00002000 fc:01 11143751
> >>> /usr/lib/i386-linux-gnu/gconv/CP1252.so
> >>> b6c8a000-b6c9f000 r-xp 00000000 00:13 264309
> >>> /my_instance/parts/unixODBC/lib/libodbcinst.so.1.0.0
> >>> b6c9f000-b6ca0000 r--p 00014000 00:13 264309
> >>> /my_instance/parts/unixODBC/lib/libodbcinst.so.1.0.0
> >>> b6ca0000-b6ca1000 rw-p 00015000 00:13 264309
> >>> /my_instance/parts/unixODBC/lib/libodbcinst.so.1.0.0
> >>> b6ca1000-b6cf2000 r-xp 00000000 00:13 264437
> >>> /my_instance/parts/FreeTDS/lib/libtdsodbc.so.0.0.0
> >>> b6cf2000-b6cf4000 r--p 00050000 00:13 264437
> >>> /my_instance/parts/FreeTDS/lib/libtdsodbc.so.0.0.0
> >>> b6cf4000-b6cf5000 rw-p 00052000 00:13 264437
> >>> /my_instance/parts/FreeTDS/lib/libtdsodbc.so.0.0.0
> >>> b6cf5000-b6d62000 r-xp 00000000 00:13 264314
> >>> /my_instance/parts/unixODBC/lib/libodbc.so.1.0.0
> >>> b6d62000-b6d63000 r--p 0006c000 00:13 264314
> >>> /my_instance/parts/unixODBC/lib/libodbc.so.1.0.0
> >>> b6d63000-b6d67000 rw-p 0006d000 00:13 264314
> >>> /my_instance/parts/unixODBC/lib/libodbc.so.1.0.0
> >>> b6d67000-b6d68000 rw-p 00000000 00:00 0
> >>> b6d68000-b6d8c000 r-xp 00000000 00:13 133343
> >>>
> >>
> /my_instance/eggs/egenix_mxodbc-3.1.1-py2.7-linux-i686.egg/mx/ODBC/unixODBC/mxODBC.so
> >>> b6d8c000-b6d90000 r--p 00023000 00:13 133343
> >>>
> >>
> /my_instance/eggs/egenix_mxodbc-3.1.1-py2.7-linux-i686.egg/mx/ODBC/unixODBC/mxODBC.so
> >>> b6d90000-b6d91000 rw-p 00027000 00:13 133343
> >>>
> >>
> /my_instance/eggs/egenix_mxodbc-3.1.1-py2.7-linux-i686.egg/mx/ODBC/unixODBC/mxODBC.so
> >>> b6d91000-b6d98000 r-xp 00000000 fc:01 10485788   /lib/i386-linux-gnu/
> >>> librt-2.15.so
> >>> b6d98000-b6d99000 r--p 00006000 fc:01 10485788   /lib/i386-linux-gnu/
> >>> librt-2.15.so
> >>> b6d99000-b6d9a000 rw-p 00007000 fc:01 10485788   /lib/i386-linux-gnu/
> >>> librt-2.15.so
> >>> b6d9d000-b6da8000 r-xp 00000000 fc:01 10485785   /lib/i386-linux-gnu/
> >>> libnss_files-2.15.so
> >>> b6da8000-b6da9000 r--p 0000a000 fc:01 10485785   /lib/i386-linux-gnu/
> >>> libnss_files-2.15.so
> >>> b6da9000-b6daa000 rw-p 0000b000 fc:01 10485785   /lib/i386-linux-gnu/
> >>> libnss_files-2.15.so
> >>> b6daa000-b6db8000 r-xp 00000000 00:13 133439
> >>>
> >>
> /my_instance/eggs/egenix_mx_base-3.2.1-py2.7-linux-i686.egg/mx/DateTime/mxDateTime/mxDateTime.so
> >>> b6db8000-b6db9000 r--p 0000d000 00:13 133439
> >>>
> >>
> /my_instance/eggs/egenix_mx_base-3.2.1-py2.7-linux-i686.egg/mx/DateTime/mxDateTime/mxDateTime.so
> >>> b6db9000-b6dba000 rw-p 0000e000 00:13 133439
> >>>
> >>
> /my_instance/eggs/egenix_mx_base-3.2.1-py2.7-linux-i686.egg/mx/DateTime/mxDateTime/mxDateTime.so
> >>> b6dbb000-b6dbe000 r-xp 00000000 00:13 264723
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cresultproxy.so
> >>> b6dbe000-b6dbf000 r--p 00002000 00:13 264723
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cresultproxy.so
> >>> b6dbf000-b6dc0000 rw-p 00003000 00:13 264723
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cresultproxy.so
> >>> b6dc0000-b6dc1000 r-xp 00000000 00:13 264722
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cutils.so
> >>> b6dc1000-b6dc2000 r--p 00000000 00:13 264722
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cutils.so
> >>> b6dc2000-b6dc3000 rw-p 00001000 00:13 264722
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cutils.so
> >>> b6dc3000-b6ea6000 rw-p 00000000 00:00 0
> >>> b6ea7000-b6ea9000 r-xp 00000000 00:13 264717
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cprocessors.so
> >>> b6ea9000-b6eaa000 r--p 00001000 00:13 264717
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cprocessors.so
> >>> b6eaa000-b6eab000 rw-p 00002000 00:13 264717
> >>>
> >>
> /my_instance/eggs/SQLAlchemy-0.8.2-py2.7-linux-i686.egg/sqlalchemy/cprocessors.so
> >>> b6eab000-b6eec000 rw-p 00000000 00:00 0
> >>> b6eed000-b6f00000 r-xp 00000000 fc:01 11147242
> >>> /usr/lib/python2.7/lib-dynload/datetime.so
> >>> b6f00000-b6f01000 r--p 00012000 fc:01 11147242
> >>> /usr/lib/python2.7/lib-dynload/datetime.so
> >>> b6f01000-b6f04000 rw-p 00013000 fc:01 11147242
> >>> /usr/lib/python2.7/lib-dynload/datetime.so
> >>> b6f04000-b6fc7000 rw-p 00000000 00:00 0
> >>> b6fd1000-b6fdb000 r-xp 00000000 fc:01 10485789   /lib/i386-linux-gnu/
> >>> libnss_nis-2.15.so
> >>> b6fdb000-b6fdc000 r--p 00009000 fc:01 10485789   /lib/i386-linux-gnu/
> >>> libnss_nis-2.15.so
> >>> b6fdc000-b6fdd000 rw-p 0000a000 fc:01 10485789   /lib/i386-linux-gnu/
> >>> libnss_nis-2.15.so
> >>> b6fdd000-b6ff3000 r-xp 00000000 fc:01 10485801   /lib/i386-linux-gnu/
> >>> libnsl-2.15.so
> >>> b6ff3000-b6ff4000 r--p 00015000 fc:01 10485801   /lib/i386-linux-gnu/
> >>> libnsl-2.15.so
> >>> b6ff4000-b6ff5000 rw-p 00016000 fc:01 10485801   /lib/i386-linux-gnu/
> >>> libnsl-2.15.so
> >>> b6ff5000-b6ff7000 rw-p 00000000 00:00 0
> >>> b7003000-b7005000 r-xp 00000000 fc:01 11144103
> >>> /usr/lib/i386-linux-gnu/gconv/ISO8859-1.so
> >>> b7005000-b7006000 r--p 00001000 fc:01 11144103
> >>> /usr/lib/i386-linux-gnu/gconv/ISO8859-1.so
> >>> b7006000-b7007000 rw-p 00002000 fc:01 11144103
> >>> /usr/lib/i386-linux-gnu/gconv/ISO8859-1.so
> >>> b7007000-b7048000 rw-p 00000000 00:00 0
> >>> b7048000-b7064000 r-xp 00000000 fc:01 10485829
> >>> /lib/i386-linux-gnu/libtinfo.so.5.9
> >>> b7064000-b7066000 r--p 0001b000 fc:01 10485829
> >>> /lib/i386-linux-gnu/libtinfo.so.5.9
> >>> b7066000-b7067000 rw-p 0001d000 fc:01 10485829
> >>> /lib/i386-linux-gnu/libtinfo.so.5.9
> >>> b7067000-b709c000 r-xp 00000000 fc:01 10486005
> >>> /lib/i386-linux-gnu/libreadline.so.6.2
> >>> b709c000-b709d000 r--p 00035000 fc:01 10486005
> >>> /lib/i386-linux-gnu/libreadline.so.6.2
> >>> b709d000-b70a0000 rw-p 00036000 fc:01 10486005
> >>> /lib/i386-linux-gnu/libreadline.so.6.2
> >>> b70a0000-b70a1000 rw-p 00000000 00:00 0
> >>> b70a2000-b70a9000 r-xp 00000000 fc:01 10485779   /lib/i386-linux-gnu/
> >>> libnss_compat-2.15.so
> >>> b70a9000-b70aa000 r--p 00006000 fc:01 10485779   /lib/i386-linux-gnu/
> >>> libnss_compat-2.15.so
> >>> b70aa000-b70ab000 rw-p 00007000 fc:01 10485779   /lib/i386-linux-gnu/
> >>> libnss_compat-2.15.so
> >>> b70ab000-b70ae000 r-xp 00000000 fc:01 11147246
> >>> /usr/lib/python2.7/lib-dynload/_heapq.so
> >>> b70ae000-b70af000 r--p 00002000 fc:01 11147246
> >>> /usr/lib/python2.7/lib-dynload/_heapq.so
> >>> b70af000-b70b1000 rw-p 00003000 fc:01 11147246
> >>> /usr/lib/python2.7/lib-dynload/_heapq.so
> >>> b70b1000-b72b1000 r--p 00000000 fc:01 11147310
> >>> /usr/lib/locale/locale-archive
> >>> b72b1000-b72f2000 rw-p 00000000 00:00 0
> >>> b72f3000-b7377000 rw-p 00000000 00:00 0
> >>> b7377000-b73a1000 r-xp 00000000 fc:01 10485792   /lib/i386-linux-gnu/
> >>> libm-2.15.so
> >>> b73a1000-b73a2000 r--p 00029000 fc:01 10485792   /lib/i386-linux-gnu/
> >>> libm-2.15.so
> >>> b73a2000-b73a3000 rw-p 0002a000 fc:01 10485792   /lib/i386-linux-gnu/
> >>> libm-2.15.so
> >>> b73a3000-b73bf000 r-xp 00000000 fc:01 10485804
> >>> /lib/i386-linux-gnu/libgcc_s.so.1
> >>> b73bf000-b73c0000 r--p 0001b000 fc:01 10485804
> >>> /lib/i386-linux-gnu/libgcc_s.so.1
> >>> b73c0000-b73c1000 rw-p 0001c000 fc:01 10485804
> >>> /lib/i386-linux-gnu/libgcc_s.so.1
> >>> b73c1000-b73c2000 rw-p 00000000 00:00 0
> >>> b73c2000-b7565000 r-xp 00000000 fc:01 10485777   /lib/i386-linux-gnu/
> >>> libc-2.15.so
> >>> b7565000-b7566000 ---p 001a3000 fc:01 10485777   /lib/i386-linux-gnu/
> >>> libc-2.15.so
> >>> b7566000-b7568000 r--p 001a3000 fc:01 10485777   /lib/i386-linux-gnu/
> >>> libc-2.15.so
> >>> b7568000-b7569000 rw-p 001a5000 fc:01 10485777   /lib/i386-linux-gnu/
> >>> libc-2.15.so
> >>> b7569000-b756c000 rw-p 00000000 00:00 0
> >>> b756c000-b7580000 r-xp 00000000 fc:01 10485988
> >>> /lib/i386-linux-gnu/libz.so.1.2.3.4
> >>> b7580000-b7581000 r--p 00013000 fc:01 10485988
> >>> /lib/i386-linux-gnu/libz.so.1.2.3.4
> >>> b7581000-b7582000 rw-p 00014000 fc:01 10485988
> >>> /lib/i386-linux-gnu/libz.so.1.2.3.4
> >>> b7582000-b7714000 r-xp 00000000 fc:01 10489622
> >>> /lib/i386-linux-gnu/libcrypto.so.1.0.0
> >>> b7714000-b7723000 r--p 00192000 fc:01 10489622
> >>> /lib/i386-linux-gnu/libcrypto.so.1.0.0
> >>> b7723000-b772a000 rw-p 001a1000 fc:01 10489622
> >>> /lib/i386-linux-gnu/libcrypto.so.1.0.0
> >>> b772a000-b772d000 rw-p 00000000 00:00 0
> >>> b772d000-b777e000 r-xp 00000000 fc:01 10489621
> >>> /lib/i386-linux-gnu/libssl.so.1.0.0
> >>> b777e000-b7780000 r--p 00050000 fc:01 10489621
> >>> /lib/i386-linux-gnu/libssl.so.1.0.0
> >>> b7780000-b7784000 rw-p 00052000 fc:01 10489621
> >>> /lib/i386-linux-gnu/libssl.so.1.0.0
> >>> b7784000-b7786000 r-xp 00000000 fc:01 10485776   /lib/i386-linux-gnu/
> >>> libutil-2.15.so
> >>> b7786000-b7787000 r--p 00001000 fc:01 10485776   /lib/i386-linux-gnu/
> >>> libutil-2.15.so
> >>> b7787000-b7788000 rw-p 00002000 fc:01 10485776   /lib/i386-linux-gnu/
> >>> libutil-2.15.so
> >>> b7788000-b7789000 rw-p 00000000 00:00 0
> >>> b7789000-b778c000 r-xp 00000000 fc:01 10485796   /lib/i386-linux-gnu/
> >>> libdl-2.15.so
> >>> b778c000-b778d000 r--p 00002000 fc:01 10485796   /lib/i386-linux-gnu/
> >>> libdl-2.15.so
> >>> b778d000-b778e000 rw-p 00003000 fc:01 10485796   /lib/i386-linux-gnu/
> >>> libdl-2.15.so
> >>> b778e000-b77a5000 r-xp 00000000 fc:01 10485790   /lib/i386-linux-gnu/
> >>> libpthread-2.15.so
> >>> b77a5000-b77a6000 r--p 00016000 fc:01 10485790   /lib/i386-linux-gnu/
> >>> libpthread-2.15.so
> >>> b77a6000-b77a7000 rw-p 00017000 fc:01 10485790   /lib/i386-linux-gnu/
> >>> libpthread-2.15.so
> >>> b77a7000-b77a9000 rw-p 00000000 00:00 0
> >>> b77aa000-b77ab000 rw-s 00000000 00:04 65538      /SYSV791309fc
> (deleted)
> >>> b77ab000-b77ac000 rw-p 00000000 00:00 0
> >>> b77ac000-b77b3000 r--s 00000000 fc:01 11144061
> >>> /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
> >>> b77b3000-b77b7000 r-xp 00000000 fc:01 11147190
> >>> /usr/lib/python2.7/lib-dynload/readline.so
> >>> b77b7000-b77b8000 r--p 00003000 fc:01 11147190
> >>> /usr/lib/python2.7/lib-dynload/readline.so
> >>> b77b8000-b77b9000 rw-p 00004000 fc:01 11147190
> >>> /usr/lib/python2.7/lib-dynload/readline.so
> >>> b77b9000-b77bb000 rw-p 00000000 00:00 0
> >>> b77bb000-b77bc000 r-xp 00000000 00:00 0          [vdso]
> >>> b77bc000-b77dc000 r-xp 00000000 fc:01 10485793   /lib/i386-linux-gnu/
> >>> ld-2.15.so
> >>> b77dc000-b77dd000 r--p 0001f000 fc:01 10485793   /lib/i386-linux-gnu/
> >>> ld-2.15.so
> >>> b77dd000-b77de000 rw-p 00020000 fc:01 10485793   /lib/i386-linux-gnu/
> >>> ld-2.15.so
> >>> bfaa5000-bfac6000 rw-p 00000000 00:00 0          [stack]
> >>> Aborted (core dumped)
> >>>
> >>> Regards,
> >>> Nanda
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________________________________
> >>> eGenix.com User Mailing List
> http://www.egenix.com/
> >>> https://www.egenix.com/mailman/listinfo/egenix-users
> >>>
> >>
> >> --
> >> Marc-Andre Lemburg
> >> eGenix.com
> >>
> >> Professional Python Services directly from the Source  (#1, Jul 23 2013)
> >>>>> Python Projects, Consulting and Support ...   http://www.egenix.com/
> >>>>> mxODBC.Zope/Plone.Database.Adapter ...       http://zope.egenix.com/
> >>>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
> >> ________________________________________________________________________
> >>
> >> ::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
> >>
> >>    eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
> >>     D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
> >>            Registered at Amtsgericht Duesseldorf: HRB 46611
> >>                http://www.egenix.com/company/contact/
> >>
> >
> >
> >
> >
> > _______________________________________________________________________
> > eGenix.com User Mailing List                     http://www.egenix.com/
> > https://www.egenix.com/mailman/listinfo/egenix-users
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /mailman-archives/egenix-users/attachments/20130723/4d44ecfc/attachment.htm


More information about the egenix-users mailing list