<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
p.Code, li.Code, div.Code
        {mso-style-name:Code;
        mso-style-link:"Code Char";
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        background:#FFF2CC;
        font-size:11.0pt;
        font-family:"Courier New";
        mso-fareast-language:EN-US;}
span.CodeChar
        {mso-style-name:"Code Char";
        mso-style-link:Code;
        font-family:"Courier New";
        background:#FFF2CC;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.pl-c1
        {mso-style-name:pl-c1;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:263879275;
        mso-list-template-ids:1590297742;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level4
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level7
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:1260522306;
        mso-list-type:hybrid;
        mso-list-template-ids:408349700 134807575 134807577 134807579 134807567 134807577 134807579 134807567 134807577 134807579;}
@list l1:level1
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">We believe we have resolved this by recreating some recently deleted QOS.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The controller starts again OK. But the QOS have been recreated with new ID, so it’s unclear how that would have fixed it.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And if the problem was an invalid QOS why wasn’t this picked up rather than seg faulting?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The code at <a href="https://github.com/SchedMD/slurm/blob/slurm-20.11/src/common/slurmdb_defs.c#L548">
https://github.com/SchedMD/slurm/blob/slurm-20.11/src/common/slurmdb_defs.c#L548</a>:<o:p></o:p></p>
<p class="Code"><span style="color:black">GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Copyright (C) 2013 Free Software Foundation, Inc.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">License GPLv3+: GNU GPL version 3 or later <<a href="http://gnu.org/licenses/gpl.html" target="_blank"><span style="font-size:9.0pt;text-decoration:none">http://gnu.org/licenses/gpl.html</span></a>></span><o:p></o:p></p>
<p class="Code"><span style="color:black">This is free software: you are free to change and redistribute it.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">There is NO WARRANTY, to the extent permitted by law.  Type "show copying"</span><o:p></o:p></p>
<p class="Code"><span style="color:black">and "show warranty" for details.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">This GDB was configured as "x86_64-redhat-linux-gnu".</span><o:p></o:p></p>
<p class="Code"><span style="color:black">For bug reporting instructions, please see:</span><o:p></o:p></p>
<p class="Code"><span style="color:black"><<a href="http://www.gnu.org/software/gdb/bugs/" target="_blank"><span style="font-size:9.0pt;text-decoration:none">http://www.gnu.org/software/gdb/bugs/</span></a>>...</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Reading symbols from /usr/sbin/slurmctld...done.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[New LWP 147686]</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[New LWP 147687]</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[New LWP 147688]</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[New LWP 147690]</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[Thread debugging using libthread_db enabled]</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Using host libthread_db library "/lib64/libthread_db.so.1".</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Core was generated by `/usr/sbin/slurmctld -D -vvv'.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Program terminated with signal 11, Segmentation fault.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#0  0x00007f4f423c4671 in bit_set (b=b@entry=0x2e06c40, bit=bit@entry=-518653972) at bitstring.c:237</span><o:p></o:p></p>
<p class="Code"><span style="color:black">237             b[_bit_word(bit)] |= _bit_mask(bit);</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Missing separate debuginfos, use: debuginfo-install slurm-slurmctld-20.11.9-1.el7.x86_64</span><o:p></o:p></p>
<p class="Code"><span style="color:black">(gdb) bt</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#0  0x00007f4f423c4671 in bit_set (b=b@entry=0x2e06c40, bit=bit@entry=-518653972) at bitstring.c:237</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#1  0x00007f4f4248af5e in _set_qos_bit_from_string (valid_qos=valid_qos@entry=0x2e06c40, name=<optimized out>) at slurmdb_defs.c:548</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#2  0x00007f4f4248eedc in set_qos_bitstr_from_list (valid_qos=0x2e06c40, qos_list=<optimized out>) at slurmdb_defs.c:2288</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#3  0x00007f4f423b896d in _set_assoc_parent_and_user (assoc=assoc@entry=0x25e3500, reset=reset@entry=0) at assoc_mgr.c:885</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#4  0x00007f4f423bfae7 in _post_assoc_list () at assoc_mgr.c:1034</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#5  0x00007f4f423c2093 in _get_assoc_mgr_assoc_list (enforce=27, db_conn=0x20f38d0) at assoc_mgr.c:1584</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#6  assoc_mgr_init (db_conn=0x20f38d0, args=args@entry=0x7fff2bc95d10, db_conn_errno=<optimized out>) at assoc_mgr.c:2039</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#7  0x000000000042bae5 in ctld_assoc_mgr_init () at controller.c:2323</span><o:p></o:p></p>
<p class="Code"><span style="color:black">#8  0x000000000042de95 in main (argc=<optimized out>, argv=<optimized out>) at controller.c:620</span><o:p></o:p></p>
<p class="Code"><span style="color:black">(gdb)</span><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The problem line is:<o:p></o:p></p>
<p class="Code"><span style="color:black">(*(my_function))(valid_qos, bit);</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">But 17 lines above that, the line<o:p></o:p></p>
<p class="Code"><span class="pl-c1"><span style="color:black">xassert</span></span><span style="color:black">(valid_qos);</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Appears to check if the qos is valid – but in this case the qos existed but was deleted – should there be more checks here for a deleted QOS?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Would have an assert been triggered if we had compiled slurmd with -<i>-enable-developer</i> as per
<a href="https://slurm.schedmd.com/faq.html#debug">https://slurm.schedmd.com/faq.html#debug</a> ?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Many thanks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Luke<o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">--
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Luke Sudbery<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Principal Engineer (HPC and Storage).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Architecture, Infrastructure and Systems<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Advanced Research Computing, IT Services<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Room 132, Computer Centre G5, Elms Road<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Please note I don’t work on Monday.<o:p></o:p></span></b></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB"> slurm-users <slurm-users-bounces@lists.schedmd.com>
<b>On Behalf Of </b>Luke Sudbery<br>
<b>Sent:</b> 07 July 2022 12:28<br>
<b>To:</b> slurm-users@schedmd.com<br>
<b>Subject:</b> [slurm-users] Slurmctl seg faulting<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">After a restart this morning*, slurmctl is starting but then failing before it is up and running:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: user user1 default acct is account1</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: assoc 68939(account1, user2) has direct parent of 26369(account1, (null))</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: user user2 default acct is account1</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: assoc 26396(account1, user3) has direct parent of 26369(account1, (null))</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: user user3 default acct is account1</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: assoc 26390(account1, user4) has direct parent of 26369(account1, (null))</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: user user4 default acct is account1</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: assoc 26342(account2, (null)) has direct parent of 3(root, (null))</span><o:p></o:p></p>
<p class="Code"><span style="color:black">slurmctld: debug2: assoc 76299(account2, rq-worker) has direct parent of 26342(account2, (null))</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Segmentation fault (core dumped)</span><o:p></o:p></p>
<p class="Code"><span style="color:black">[root@bb-er-slurm01 state]#</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Which give us very little to go on.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Earlier, there was a long list of <o:p></o:p></p>
<p class="Code"><span style="color:black;mso-fareast-language:EN-GB">slurmctld: error: assoc 62346 doesn't have access to it's default qos 'qos1'</span><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="Code"><span style="color:black;mso-fareast-language:EN-GB">slurmctld: error: assoc 61271 doesn't have access to it's default qos 'qos1'</span><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="Code"><span style="color:black;mso-fareast-language:EN-GB">slurmctld: error: assoc 61221 doesn't have access to it's default qos 'qos1'</span><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="Code"><span style="color:black;mso-fareast-language:EN-GB">slurmctld: error: assoc 61215 doesn't have access to it's default qos 'qos1’</span><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Shortly before the segfault. We have cleared those, by setting correct default qos with sacctmgr, but the controller is still seg faulting.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">*The restart was initiated by our HA cluster (pacemaker/corosync) and at one point 2 copies of slurmdbd may have been running. But the second copy appeared to detect this and back off? Not sure:<o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:47 bb-aw-slurm01.bear.cluster systemd[1]: Started Cluster Controlled slurmdbd.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:47 bb-aw-slurm01.bear.cluster slurmdbd[212307]: debug:  Log file re-opened</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:47 bb-aw-slurm01.bear.cluster slurmdbd[212307]: pidfile not locked, assuming no running daemon</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:47 bb-aw-slurm01.bear.cluster slurmdbd[212307]: debug:  auth/munge: init: Munge authentication plugin loaded</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: accounting_storage/as_mysql: _check_mysql_concat_is_sane: MySQL server version is: 10.3.32-MariaDB</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: error: _mysql_query_internal: deadlock detected attempt 1/10: 1213 WSREP replication failed. Check your wsrep connection state and retry the query.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: error: mysql_query failed: 1047 WSREP has not yet prepared node for application use</span><o:p></o:p></p>
<p class="Code"><span style="color:black">                                                             create table if not exists table_defs_table (creation_time int unsigned not null, mod_time int unsigned default 0 not null, table_name text not null,</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: accounting_storage/as_mysql: init: Accounting storage MYSQL plugin failed</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: error: Couldn't load specified plugin name for accounting_storage/mysql: Plugin init() callback failed</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster slurmdbd[212307]: error: cannot create accounting_storage context for accounting_storage/mysql</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster systemd[1]: slurmdbd.service: main process exited, code=exited, status=1/FAILURE</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster systemd[1]: Unit slurmdbd.service entered failed state.</span><o:p></o:p></p>
<p class="Code"><span style="color:black">Jul 07 09:06:52 bb-aw-slurm01.bear.cluster systemd[1]: slurmdbd.service failed.</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">But either way, we suspect database corruption may be the problem, but slurmdbd logs don’t give anything to go on.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So questions,<o:p></o:p></p>
<ol style="margin-top:0cm" start="1" type="a">
<li class="MsoListParagraph" style="margin-left:0cm;mso-list:l1 level1 lfo3">How can we troubleshoot further? I am currently attempting to rebuild slurm with debugging symbols (<a href="https://slurm.schedmd.com/faq.html#debug">https://slurm.schedmd.com/faq.html#debug</a>)
 as gdb is not giving any useful information at all ATM.<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0cm;mso-list:l1 level1 lfo3">What are the implications of restoring the database? How does slurm reconcile the database and the state directory?<o:p></o:p></li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Many thanks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Luke<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">--
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Luke Sudbery<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Principal Engineer (HPC and Storage).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Architecture, Infrastructure and Systems<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Advanced Research Computing, IT Services<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Room 132, Computer Centre G5, Elms Road<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;color:#1F497D;mso-fareast-language:EN-GB">Please note I don’t work on Monday.<o:p></o:p></span></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>