Statistics of this Blog: Crossed 100.000 Views

This blog was viewed more than 100.000 times since its inception and had more than 76.750 visitors. The averages per month are:

As numbers:

The most popular posts over one year are:

The most popular posts over all years are:

Distribution of countries accessing this blog over last 365 days, USA is number one, followed by Germany and India:

Contribution to scientific publications in GPUGrid

Looking at my account page in GPUGrid I notice that my computations have lead to some publications. Nice.
3063rd/3113Giorgino et al, J. Chem. Theory Comput, 2012cancer
3389th/5798Sadiq et al, PNAS 2012hiv
1801st/1995Venken et al, JCTC 2013hiv
1886th/3349Buch et al, JCIM 2013cancer
3741st/4477Pérez-Hernández et al, JCP 2013methods
564th/2163Bisignano et al. JCIM 2014methods
369th/1283Doerr et al. JCTC 2014methods
573rd/2838Stanley et al, Nat Commun 2014cancer
1453rd/3611Ferruz et al., JCIM 2015methods
1313th/4128Ferruz et al., Sci Rep 2016brain
3083rd/4815Stanley et al., Sci Rep 2016cancer
4319th/4730Noe et al., Nat Chem 2017methods
Anyone having a device which supports BOINC can contribute his compute power to scientific endeavours. Also see BOINC wiki.

Chinese Hackers

I am running fail2ban since November 2017 and all unsuccessful attempts to log-in to sshd are monitored. Breaking down these attempts according country shows that Chinese IP addresses are coming first here.

The numbers are:

27639    China
13589    United States
8641     France
3985     India
3418     Korea
3217     Brazil
2940     Canada
2419     Germany
2157     Russian Federation
1988     Indonesia

fail2ban_breakdown_country

The distribution of total attacks per month is as depicted below:
ipBlockPerMonth
Continue reading

slurmctld showing nodes as ‘drain’

Recently one node was changed from octacore to hexacore. Since that time sinfo showed this node in STATE drain. Stopping and restarting slurmctld did not resolve the issue. Log file /var/log/slurm-llnl/slurmctld.log showed

[2019-12-31T23:57:52.588] error: Node X appears to have a different slurm.conf than the slurmctld.  This could cause issues with communication and functionality.  Please review both files and make sure they are the same.  If this is expected ignore, and set DebugFlags=NO_CONF_HASH in your slurm.conf.

This hinted that some caching is the culprit. Entry

StateSaveLocation=/var/lib/slurm-llnl/slurmctld

shows where slurmctld stores state. Removing the files in that directory and restarting slurmctld solves the problem.

Oracle Deadlock When Using Bitmap Index

When using bitmap indexes in Oracle database one must watch out for deadlocks, see for example Tom Kyte‘s remark on Bitmap indexes and locking. This is by design of bitmap indexes. Below example is given in Oracle Bitmap Indexes Limitations/Restrictions.

Problem occurs on “Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production”.

create table X (a char(1));
create bitmap index Xix on X(a);
insert into X select decode(mod(rownum,2),0,'A','B') from All_Objects;

Open two session, i.e., open SQL*Plus two times.

Session 1 Session 2
insert into X values(‘A’)
insert into X values(‘B’)
insert into X values(‘B’)
deadlock insert into X values(‘A’)

Updating IP Address in Dynu

Dynu is a free dynamic DNS service. As described in Microsoft Brought Down No-IP.org I have to cope with big business just pushing their own interest and not caring on small business or private customers.

I tried to update IP address for Dynu using ddclient using package ddclient. This failed. The version 2 of Dynu’s API allows to do that with curl/wget.

Steps to set it up:

  1. Go to API Credentials to get your “API-key”
  2. Go to API and authorize using your “API-key”
  3. Run first “GET /dns” to gather your so called “id”. Alternatively, run the below curl command

The curl command to get your “id” is as follows:

curl -X GET "https://api.dynu.com/v2/dns" -H  "accept: application/json" -H  "API-Key: yyyyyyyyyy"

Output is like this:

{"statusCode":200,"domains":[{"id":12345678,"name":"eklausmeier.mywire.org","unicodeName":"eklausmeier.mywire.org","token":"aaaaaaaaa","state":"Complete","location":"office","group":"office","ipv4Address":"109.90.226.205","ipv6Address":null,"ttl":90,"ipv4":true,"ipv6":false,"ipv4WildcardAlias":false,"ipv6WildcardAlias":false,"createdOn":"2019-05-25T08:37:16","updatedOn":"2019-06-29T12:33:04.707"}]}%

Once you know your “API-key” and “id” you can set-up a simple script to run periodically. I use a Perl script which first fetches my current internet address, $remoteIP, and then updates Dynu.

open(F,"curl -sX POST \"https://api.dynu.com/v2/dns/XXXXXXXX\" "
        . "-H \"accept: application/json\" "
        . "-H \"API-Key: yyyyyyyyyyyyyyyyyyyyyyyy\" "
        . "-H \"Content-Type: application/json\" "
        . "-d \"{\\\"name\\\":\\\"eklausmeier.mywire.org\\\","
                . "\\\"group\\\":\\\"office\\\","
                . "\\\"ipv4Address\\\":\\\"${remoteIP}\\\","
                . "\\\"ttl\\\":90,\\\"ipv4\\\":true}\" |")
        || die("Cannot curl to dynu.com");
while (<F>) {
        print;
}
close(F) || die("Cannot close dynu.com");

If all goes well then output is:

{"statusCode":200}