Thread: [bugfix] sepgsql didn't follow the latest core API changes

[bugfix] sepgsql didn't follow the latest core API changes

From
Kohei KaiGai
Date:
This patch fixes a few portions on which sepgsql didn't follow the latest
core API changes.

1) Even though the prototype of ProcessUtility_hook was recently changed,
sepgsql side didn't follow this update, so it made build failed.

2) sepgsql internally uses GETSTRUCT() and HeapTupleGetOid() macro
these were moved to htup_details.h, so it needs an additional #include
for "access/htup_defails.h".

3) sepgsql internally used a bool typed variable named "abort".
I noticed it conflicts with ereport macro because it internally expanded to
ereport_domain that contains invocation of "abort()". So, it renamed this
variables to abort_on_violation.

#define ereport_domain(elevel, domain, rest)    \
    (errstart(elevel, __FILE__, __LINE__, PG_FUNCNAME_MACRO, domain) ? \
     (errfinish rest) : (void) 0),                                     \
        ((elevel) >= ERROR ? abort() : (void) 0)

This does not affect to v9.2, so please apply it on the master branch.

Thanks,
--
KaiGai Kohei <kaigai@kaigai.gr.jp>

Attachment

Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Alvaro Herrera
Date:
Excerpts from Kohei KaiGai's message of dom sep 02 15:53:22 -0300 2012:
> This patch fixes a few portions on which sepgsql didn't follow the latest
> core API changes.

I think you should get a buildfarm animal installed that builds and
tests sepgsql, to avoid this kind of problem in the future.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Kohei KaiGai
Date:
2012/9/3 Alvaro Herrera <alvherre@2ndquadrant.com>:
> Excerpts from Kohei KaiGai's message of dom sep 02 15:53:22 -0300 2012:
>> This patch fixes a few portions on which sepgsql didn't follow the latest
>> core API changes.
>
> I think you should get a buildfarm animal installed that builds and
> tests sepgsql, to avoid this kind of problem in the future.
>
Thanks for your suggestion. I'm interested in.

http://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto

Does it test only build-correctness? Or, is it possible to include
result of regression test for result to be alarmed?
-- 
KaiGai Kohei <kaigai@kaigai.gr.jp>



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Alvaro Herrera
Date:
Excerpts from Kohei KaiGai's message of mié sep 05 08:30:37 -0300 2012:
> 2012/9/3 Alvaro Herrera <alvherre@2ndquadrant.com>:
> > Excerpts from Kohei KaiGai's message of dom sep 02 15:53:22 -0300 2012:
> >> This patch fixes a few portions on which sepgsql didn't follow the latest
> >> core API changes.
> >
> > I think you should get a buildfarm animal installed that builds and
> > tests sepgsql, to avoid this kind of problem in the future.
> >
> Thanks for your suggestion. I'm interested in.
>
> http://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto
>
> Does it test only build-correctness? Or, is it possible to include
> result of regression test for result to be alarmed?

Yes, regression test diffs are also reported and can cause failures.
As far as I know, you can construct your own test steps, if you want to
do something customized that's not present in regular BF animals.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Andrew Dunstan
Date:
On 09/05/2012 09:11 AM, Alvaro Herrera wrote:
> Excerpts from Kohei KaiGai's message of mié sep 05 08:30:37 -0300 2012:
>> 2012/9/3 Alvaro Herrera <alvherre@2ndquadrant.com>:
>>> Excerpts from Kohei KaiGai's message of dom sep 02 15:53:22 -0300 2012:
>>>> This patch fixes a few portions on which sepgsql didn't follow the latest
>>>> core API changes.
>>> I think you should get a buildfarm animal installed that builds and
>>> tests sepgsql, to avoid this kind of problem in the future.
>>>
>> Thanks for your suggestion. I'm interested in.
>>
>> http://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto
>>
>> Does it test only build-correctness? Or, is it possible to include
>> result of regression test for result to be alarmed?
> Yes, regression test diffs are also reported and can cause failures.
> As far as I know, you can construct your own test steps, if you want to
> do something customized that's not present in regular BF animals.


Looking at SEPgsql testing is on my long TODO list. I'll have to set up
a separate VM for it, as I don't habitually run SELinux.

cheers

andrew




Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Robert Haas
Date:
On Sun, Sep 2, 2012 at 2:53 PM, Kohei KaiGai <kaigai@kaigai.gr.jp> wrote:
> This patch fixes a few portions on which sepgsql didn't follow the latest
> core API changes.
>
> 1) Even though the prototype of ProcessUtility_hook was recently changed,
> sepgsql side didn't follow this update, so it made build failed.
>
> 2) sepgsql internally uses GETSTRUCT() and HeapTupleGetOid() macro
> these were moved to htup_details.h, so it needs an additional #include
> for "access/htup_defails.h".
>
> 3) sepgsql internally used a bool typed variable named "abort".
> I noticed it conflicts with ereport macro because it internally expanded to
> ereport_domain that contains invocation of "abort()". So, it renamed this
> variables to abort_on_violation.
>
> #define ereport_domain(elevel, domain, rest)    \
>     (errstart(elevel, __FILE__, __LINE__, PG_FUNCNAME_MACRO, domain) ? \
>      (errfinish rest) : (void) 0),                                     \
>         ((elevel) >= ERROR ? abort() : (void) 0)
>
> This does not affect to v9.2, so please apply it on the master branch.

I have committed this untested.  It seems pretty mechanical and I
assume that you tested it.  Anyway, it's certainly broken without the
patch.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Kohei KaiGai
Date:
2012/9/5 Andrew Dunstan <andrew@dunslane.net>:
>
> On 09/05/2012 09:11 AM, Alvaro Herrera wrote:
>>
>> Excerpts from Kohei KaiGai's message of mié sep 05 08:30:37 -0300 2012:
>>>
>>> 2012/9/3 Alvaro Herrera <alvherre@2ndquadrant.com>:
>>>>
>>>> Excerpts from Kohei KaiGai's message of dom sep 02 15:53:22 -0300 2012:
>>>>>
>>>>> This patch fixes a few portions on which sepgsql didn't follow the
>>>>> latest
>>>>> core API changes.
>>>>
>>>> I think you should get a buildfarm animal installed that builds and
>>>> tests sepgsql, to avoid this kind of problem in the future.
>>>>
>>> Thanks for your suggestion. I'm interested in.
>>>
>>> http://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto
>>>
>>> Does it test only build-correctness? Or, is it possible to include
>>> result of regression test for result to be alarmed?
>>
>> Yes, regression test diffs are also reported and can cause failures.
>> As far as I know, you can construct your own test steps, if you want to
>> do something customized that's not present in regular BF animals.
>
> Looking at SEPgsql testing is on my long TODO list. I'll have to set up a
> separate VM for it, as I don't habitually run SELinux.
>
If you are available to provide a VM environment for sepgsql, let me help
set up its build and regression test environment.

As you may know, the regression test of sepgsql requires some additional
configurations on operating system level, such as security policy load and
so on. I expect we have to add something special stuff onto the buildfirm
system.

Thanks,
--
KaiGai Kohei <kaigai@kaigai.gr.jp>



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Kohei KaiGai
Date:
2012/9/5 Robert Haas <robertmhaas@gmail.com>:
> On Sun, Sep 2, 2012 at 2:53 PM, Kohei KaiGai <kaigai@kaigai.gr.jp> wrote:
>> This patch fixes a few portions on which sepgsql didn't follow the latest
>> core API changes.
>>
>> 1) Even though the prototype of ProcessUtility_hook was recently changed,
>> sepgsql side didn't follow this update, so it made build failed.
>>
>> 2) sepgsql internally uses GETSTRUCT() and HeapTupleGetOid() macro
>> these were moved to htup_details.h, so it needs an additional #include
>> for "access/htup_defails.h".
>>
>> 3) sepgsql internally used a bool typed variable named "abort".
>> I noticed it conflicts with ereport macro because it internally expanded to
>> ereport_domain that contains invocation of "abort()". So, it renamed this
>> variables to abort_on_violation.
>>
>> #define ereport_domain(elevel, domain, rest)    \
>>     (errstart(elevel, __FILE__, __LINE__, PG_FUNCNAME_MACRO, domain) ? \
>>      (errfinish rest) : (void) 0),                                     \
>>         ((elevel) >= ERROR ? abort() : (void) 0)
>>
>> This does not affect to v9.2, so please apply it on the master branch.
>
> I have committed this untested.  It seems pretty mechanical and I
> assume that you tested it.  Anyway, it's certainly broken without the
> patch.
>
Thanks, I'd like to pay attention to core API changes more.

I still have one other bug fix for v9.2 and master branch.
Isn't it obvious to apply?

http://archives.postgresql.org/message-id/CADyhKSVWKjCKY3cDeQG6qp7OczqsbJtT9cihk3HB7TkvcEDD+Q@mail.gmail.com
-- 
KaiGai Kohei <kaigai@kaigai.gr.jp>



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Alvaro Herrera
Date:
Kohei KaiGai wrote:
> 2012/9/5 Andrew Dunstan <andrew@dunslane.net>:

> > Looking at SEPgsql testing is on my long TODO list. I'll have to set up a
> > separate VM for it, as I don't habitually run SELinux.
> >
> If you are available to provide a VM environment for sepgsql, let me help
> set up its build and regression test environment.
>
> As you may know, the regression test of sepgsql requires some additional
> configurations on operating system level, such as security policy load and
> so on. I expect we have to add something special stuff onto the buildfirm
> system.

Did this go anywhere?


--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Kohei KaiGai
Date:
2012/10/10 Alvaro Herrera <alvherre@2ndquadrant.com>:
> Kohei KaiGai wrote:
>> 2012/9/5 Andrew Dunstan <andrew@dunslane.net>:
>
>> > Looking at SEPgsql testing is on my long TODO list. I'll have to set up a
>> > separate VM for it, as I don't habitually run SELinux.
>> >
>> If you are available to provide a VM environment for sepgsql, let me help
>> set up its build and regression test environment.
>>
>> As you may know, the regression test of sepgsql requires some additional
>> configurations on operating system level, such as security policy load and
>> so on. I expect we have to add something special stuff onto the buildfirm
>> system.
>
> Did this go anywhere?
>
Andrew offered a test environment, but I could not have enough time to
set up it yet...

Thanks,
-- 
KaiGai Kohei <kaigai@kaigai.gr.jp>



Re: [bugfix] sepgsql didn't follow the latest core API changes

From
Alvaro Herrera
Date:
Kohei KaiGai wrote:
> 2012/10/10 Alvaro Herrera <alvherre@2ndquadrant.com>:
> > Kohei KaiGai wrote:
> >> 2012/9/5 Andrew Dunstan <andrew@dunslane.net>:
> >
> >> > Looking at SEPgsql testing is on my long TODO list. I'll have to set up a
> >> > separate VM for it, as I don't habitually run SELinux.
> >> >
> >> If you are available to provide a VM environment for sepgsql, let me help
> >> set up its build and regression test environment.
> >>
> >> As you may know, the regression test of sepgsql requires some additional
> >> configurations on operating system level, such as security policy load and
> >> so on. I expect we have to add something special stuff onto the buildfirm
> >> system.
> >
> > Did this go anywhere?
> >
> Andrew offered a test environment, but I could not have enough time to
> set up it yet...

I will snail-mail you a round tuit I have at home.  I would feel more
comfortable committing sepgsql stuff if we had it.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services